ssh普通用户(非root用户)的**登录

原文地址     ssh原理

ssh普通用户(非root用户)的**登录

这里以用户名 zhangsan 为例。

由于个人习惯问题,我把用户zhangsan的默认目录改了,在使用**登录的过程中,始终提示要输入用户密码,而 /var/log/secure 也没有任何信息,
后来在/etc/passwd中把默认目录改回到 /home/zhangsan ,就正常了。导致我折腾了一整天。。。

下面简单叙述一下ssh非root用户的**登录步骤:

1,生成**对(key pair)

[html] view plain copy
 ssh普通用户(非root用户)的**登录ssh普通用户(非root用户)的**登录
  1. ssh-****** -t rsa -C "[email protected]"  

Enter file in which to save the key (/root/.ssh/id_rsa):
#输入key的保存位置,直接回车即可。

Enter passphrase (empty for no passphrase):
#私钥口令,不需要的话直接回车。


2,添加公钥到 authorized_keys 文件

[html] view plain copy
 ssh普通用户(非root用户)的**登录ssh普通用户(非root用户)的**登录
  1. mkdir /home/zhangsan/.ssh  
  2. touch /home/zhangsan/.ssh/authorized_keys  
  3. cat /root/.ssh/id_rsa.pub > /home/zhangsan/.ssh/authorized_keys  

 

注意目录和文件的权限
/home/zhangsan/.ssh 的 owner 应该为 zhangsan:group
chmod 700 /home/zhangsan/.ssh
chmod 600 /home/zhangsan/.ssh/authorized_keys

登录测试
ssh -i /home/zhangsan/.ssh/id_rsa [email protected]

如果是Xshell等客户端工具,导入私钥 id_rsa 即可。


基于**认证的配置
    # vi /etc/ssh/sshd_config  
  PasswordAuthentication no //禁止使用基于口令认证的方式登陆
  PubkeyAuthentication yes //允许使用基于**认证的方式登陆
       # /etc/init.d/sshd reload


ssh**登录,所选的用户**未在远程主机上注册

 ssh普通用户(非root用户)的**登录

我自己重新注册用户可以成功,但是,使用已经存在的用户一直显示这个报错信息,经过我认真的排查,猜测,应该是用户的家目录没有在  /home/user这个位置,所以秘钥没有找到。原来由于特殊需求,用户的家目录创建时并没有在这里,所以一直显示找不到。