无密码登陆,其实是指通过证书认证的方式登陆,使用"公私钥"认证的方式来进行ssh登录。
- "公私钥"认证方式原理
1、首先在client上创建一对公私钥,
公钥文件:~/.ssh/id_rsa.pub
私钥文件:~/.ssh/id_rsa
2、然后把公钥放到server上
~/.ssh/authorized_keys
3、client登录server过程
client保留私钥,在使用ssh登录server时,ssh程序发送私钥去和server上的公钥做匹配,若匹配成功则可以登录。
- centos7配置证书验证登陆步骤
a、未设置前,需要密码进行登陆
b、确认系统已安装OpenSSH的server 和client
rpm -qa|grep openssh
c、注释掉sshd的配置文件如下三行,并重启sshd
$ vi /etc/ssh/sshd_confi
#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys
$ /bin/systemctl restart sshd.service ---重启sshd
d、生成证书公私钥
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
e、证书放置
cat ~/.ssh/id_dsa.pub >>~/.ssh/authorized_keys
f、修改authorized_keys权限
chmod 600 ~/.ssh/authorized_keys
不安全的设置,将不能使用RSA功能
g、测试登录
ssh -lstack localhost
- 免认证登陆远程服务器
方法一:
$cat ~/.ssh/id_rsa.pub | ssh 远程用户名@远程服务器ip `cat - >> ~/.ssh/authorized_keys`
方法二:
在本机上执行:
$ scp ~/.ssh/id_dsa.pub 远程用户名@远程服务器ip:/home/stack/
登陆远程服务器后执行:
$ cat /home/stack/id_dsa.pub >> ~/.ssh/authorized_keys
修改文件authorized_keys的权限
$ chmod 600 ~/.ssh/authorized_keys
- 排障命令及log
ssh -v -lstack localhost 显示详细的登陆信息
tail /var/log/secure -n 20 查看系统的日志文件