ssh命令远程连接服务器时,每次需要输入密码,这样比较麻烦,于是找了下实现免密码登陆的方法。这里介绍下ssh-keygen用法,大牛请绕道。

本机:MacOS Sierra
目标机:Centos VPS

ssh-keygen简介

ssh-keygen -- authentication key generation, management and conversion

简单的说就是可以利用其实现两台Linux机器间免密登陆。通过生成密钥的方式,加密形式为rsa|dsa,默认为rsa.

比如:

ssh-keygen -t rsa #指定加密方式为rsa

执行后将会在Mac目录/Users/xxx/.ssh/下生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)文件。

免密登陆

将本机生成的公钥文件(id_rsa.pub)拷贝到目标机上:

 scp ~/.ssh/id_rsa.pub root@x.x.x.x:/root/.ssh/

在目标机上修改文件名id_rsa.pub为authorized_keys

mv -f id_rsa.pub authorized_keys

即可实现免密登陆vps:

ssh root@x.x.x.x

配置多个vps免密登陆

往往我们有多个vps需要连接,这个时候需要配置多个免密登陆;方法是在~/.ssh/目录下新建一个config文件名文件。在文件中配置服务器别名、指定密钥等。

#~: vi ~/.ssh/config

Host vps_01
HostName x.x.x.x
Port 22
User root
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_01

Host vps_02
HostName x.x.x.x
Port 23333
User root
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_02