SSH是一种通讯协议,可以实现远程安全登录。但是每次登录的时候都需要输入密码,这就让人使用起来很繁琐。所以,我们可以通过配置ssh公钥和私钥来实现免密码登录。
本次实验,假设我们有两台服务器,我们要做的是让serverA 服务器的 usera 用户免密码登录 serverB 服务器的 userb用户。
首先,在serverA上生成秘钥:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
这儿有三个参数:
-t:指定加密的算法类型,一般就是rsa
-P:指定密码,如果不设密码,可以置空
-f:指定生成秘钥的存储目录
其次,将公钥发送给serverB:
ssh-copy-id userb@serverB
然后,我们会发现usera的公钥文件内容会追加写入到userb的 .ssh/authorized_keys 文件中
最后,查看serverB服务器userb用户下的 ~/.ssh/authorized_keys文件,会发现新添加进来的公钥和serverA的公钥是一样的。
到此,我们完成了ssh免密登录的配置。但是,我们发现,每次连接的时候,需要输入服务器的ip地址,也挺繁琐的。于是,我们可以给每台服务器设置别名。
首先,在.ssh文件下找到config文件,如果没有的话,我们自己创建一个:
touch config
然后编辑这个文件:
Host hello_kitty
HostName 1xx.1xx.1xx.xx
User userb
IdentitiesOnly yes
这儿主要配置前面三个参数:
Host:我们想要设置的别名
HostName:需要连接的服务器的ip地址
User:登录的用户名
IdentitiesOnly:默认参数,yes
最后保存刚刚编写的文件,然后我们以后使用ssh +别名就可以连接服务器了。