对不同的主机使用不同的公钥连接


Step 1. 首先生成公钥

ssh-keygen -t rsa -b 4096 -C "<[email protected]>" -f ~/.ssh/<filename>
# 将[email protected]和filename有意义的字符串。此时密钥对就会在指定路径生成。

Step 2. 将<filename>.pub 拷贝到远程主机上

ssh-copy-id -i ~/.ssh/<filename>.pub <[email protected]>
# 远程主机会要求你登录。

Step 3. 拷贝完成后,在~/.ssh/config作出如下配置:

host <alias name>
    user <your name>
    hostname <server name>
    port <ssh port>
    identityfile ~/.ssh/<filename>

例如:

host me
    user test
    hostname chowe.one
    port 22
    identityfile ~/.ssh/test

保存后执行

ssh me

这样就会以你设置的密钥登陆到远程主机上。

同样,也可以用于scp风格的指令中:

scp me:path/to/filename ~/path/to/filename

如果想要指定某个主机使用特定的密钥 在~/.ssh/config作出如下配置即可:

host example.com
    identityfile ~/.ssh/xxx_rsa

host *
    identityfile ~/.ssh/id_rsa

如果密钥带有passphrase而你又不想每次都要输入,可以使用ssh agent

eval $(ssh-agent)
ssh-add ~/.ssh/xxx_rsa

此时只有输入一次passphrase就可以了,当然,这个只针对当前shell起作用

· Written by Chowe