ssh普通用户(非root用户)的**登录
这里以用户名 zhangsan 为例。
由于个人习惯问题,我把用户zhangsan的默认目录改了,在使用**登录的过程中,始终提示要输入用户密码,而 /var/log/secure 也没有任何信息,
后来在/etc/passwd中把默认目录改回到 /home/zhangsan ,就正常了。导致我折腾了一整天。。。
下面简单叙述一下ssh非root用户的**登录步骤:
1,生成**对(key pair)
Enter file in which to save the key (/root/.ssh/id_rsa):
#输入key的保存位置,直接回车即可。
Enter passphrase (empty for no passphrase):
#私钥口令,不需要的话直接回车。
2,添加公钥到 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**登录,所选的用户**未在远程主机上注册
我自己重新注册用户可以成功,但是,使用已经存在的用户一直显示这个报错信息,经过我认真的排查,猜测,应该是用户的家目录没有在 /home/user这个位置,所以秘钥没有找到。原来由于特殊需求,用户的家目录创建时并没有在这里,所以一直显示找不到。