生成ssh密钥对

在本地或者远程生成密钥对

ssh-keygen

我们会获取两个文件,公钥(以.pub结尾),和私钥

在服务器保存公钥

先登录到服务器上,然后把公钥的内容复制到~/.ssh/authorized_keys中。
authorized_keys是保存承认的公钥列表的文件,每行都是一个公钥。
然后确保authorized_keys的权限为600

在本地保存私钥

将私钥放在一个安全的地方。接着确保文件权限为600,否则用下面的命令修改

chmod 600 private.key

然后在ssh连接时使用

ssh -i private.key user@host

进行登录。

Config文件配置

如果不想每次登录时手动指定私钥文件。可以编辑~/.ssh/config文件:

Host Target
	HostName 192.168.1.1
	User tom
        IdentityFile ~/.ssh/private.key
        Port 22

Host Target2
	HostName 192.168.1.2
	User jerry
        IdentityFile ~/.ssh/private2.key
        Port 22
        

其中的HostName, UserPort不是必须的。