使用ssh无密码登录
使用ssh无密码登录
ssh 是一个专为远程登录会话和其他网络服务提供安全性的协议。默认状态下ssh链接是需要密码认证的,可以通过添加系统认证(即公钥-私钥)的修改,修改后系统间切换可以避免密码输入和ssh认证。以下将创建过程简单介绍下。
1.使用ssh-keygen创建公匙/私匙对
ssh-keygen –tdsa -C jibo.tiger@gmail.com –f ~/.ssh/jibo.tiger@gmail.com
过程中,可能会要求输入密码,为了ssh访问过程无需密码,可以直接回车。
2. 查看公匙/私匙对
ls ~/.ssh
jibo.tiger@gmail.com jibo.tiger@gmail.com.pub config
可以发现 ssh目录下的两枚key files
其中jibo.tiger@gmail.com.pub为公匙,jibo.tiger@gmail.com为私匙
4.将公匙复制到服务器主机上
scp jibo.tiger@gmail.com.pub hostname@i:~/.ssh/jibo.tiger@gmail.com.pub
5.添加公匙到服务主机上的信任
cat jibo.tiger@gmail.com.pub >>authorized_keys
not:4,5步可以由命令ssh-copy-id一步到位
ssh-copy-id -i jibo.tiger@gmail.com.pub user@ip
6.设置文件和目录权限:
设置authorized_keys权限
$ chmod 600 authorized_keys
设置.ssh目录权限
$ chmod 700 -R .ssh
总结注意事项
1、文件和目录的权限千万别设置成chmod 777.这个权限太大了,不安全,数字签名也不支持。
2、生成的rsa/dsa签名的公钥是给对方机器使用的。这个公钥内容还要拷贝authorized_keys
3、linux之间的访问直接 ssh hostname@ip。如果不指定hostname则默认使用本地主机名。
4、某个机器生成自己的RSA或者DSA的数字签名,将公钥给目标机器,然后目标机器接收后设定相关权限(公钥和authorized_keys权限),这个目标机就能被生成数字签名的机器无密码访问了