实现SSH免密码登录服务器

一般的SSH远程登录服务器

ssh登录使用ssh user@host 的方式,如:

$ ssh apps@10.3.8.150

这种方式比较低效,尤其是密码复杂,每次需要复制粘贴

SSH实现免输入密码登录服务器

客户端机器A想要远程登录目标机器B,使用ssh-keygen

机器A上的操作

生成私钥和公钥:

$ ssh-keygen -t rsa

提示输入密码,直接按回车就行 生成的密钥在 ~/.ssh 下:id_rsa是私钥,id_rsa.pub是公钥

机器B上的操作

创建 ~/.ssh/authorized_keys 文件

$ touch ~/.ssh/authorized_keys

查看 ~/.ssh 和 authorized_keys 的权限

~/.ssh 的权限是700,authorized_keys的权限是600,如果权限不对需要改过来:

$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys

最后把机器A的公钥id_rsa.pub里面的内容复制到~/.ssh/authorized_keys就配置结束了,这样机器A再使用ssh user@host就自动登录到机器B。

更优雅地使用SSH

使用命令别名

更便捷的方式是alias设置别名,只需要改shell配置文件。我使用的是zsh,修改~/.zshrc

$ vim ~/.zshrc

例如添加: > alias 150=“ssh idi@10.3.8.150”

source生效,这是很实用的小技巧,可以举一反三。

$ source ~/.zshrc

这样要想ssh登录到10.3.8.150,只需打开终端后输入150即可。