[Linux] ssh免密码登录
目标:本地机器ssh登录远程目标机器时不用输入密码 (默认状态下,ssh user@192.xxx.x.xxx需要输入密码)
原理:通过公钥和私钥实现系统认证
实现:把本地机器的公钥复制到目标机器
具体:
1. 在本地机器生成公钥私钥对(如果之前已经执行过,这一步可以跳过)
ssh-keygen -t rsa
或者 ssh-keygen -t rsa -P ''
-P表示密码,-P '' 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车。
该命令在~/.ssh/目录下生成两个文件:id_rsa(私钥)和 id_rsa.pub(公钥)
2. 把本地机器的公钥复制到目标机器
方法1:
ssh-copy-id user@192.xxx.x.xxx
该命令会将把本地机器的公钥复制到目标机器的 ~/.ssh/authorized_keys文件中
方法2:
scp ~/.ssh/id_rsa.pub user@192.xxx.x.xxx:~/.ssh/
cat id_dsa.pub >> ~/.ssh/authorized_keys
(或者直接 scp ~/.ssh/id_rsa.pub user@192.xxx.x.xxx:~/.ssh/authorized_keys)
3. 然后ssh remote_host 登录远程机器就不需要密码了.
参考:
使用ssh-keygen和ssh-copy-id三步实现SSH无密码登录
ssh-keygen生成密钥设置方法,让ubuntu无密码登录linux