当前位置: 首页>>技术问答>>正文


如何为SSH永久添加标识?

,

问题描述

每当我需要ssh到网络服务器时,我需要运行ssh-add <key>。有没有办法永久添加ID,所以我不必在每次登录时不断添加身份?

编辑:密钥是一个pem文件,我从云服务下载。

最佳解决方案

像往常一样生成密钥:ssh-keygen,然后使用ssh-copy-id将该密钥放入远程服务器,ssh-copy-id将其同步到远程服务器接受的密钥。

ssh-keygen
ssh-copy-id user@host

它将提示您输入密码,然后执行将.pub密钥与远程SSH服务器链接所需的所有步骤。

默认情况下,它会将所有.pub密钥复制到远程服务器。如果您刚刚使用ssh-keygen创建了密钥,那么这不是问题(因为您只有一个!)。但是,如果您有多个键,则只能使用-i标志复制特定键。

ssh-copy-id -i ~.ssh/key_name.pub user@host

用密钥名称替换key_name.pub

次佳解决方案

您可以使用以下命令生成ssh密钥:

ssh-keygen

然后,您可以将密钥复制到服务器:

ssh serveruser@servername "echo `cat ~/.ssh/id_dsa.pub` >> ~/.ssh/authorized_keys" 

现在您可以自动登录您的网络服务器

第三种解决方案

如果您的密钥是password-less并且被命名为ssh在识别时将尝试查找的文件之一(~/.ssh/id_dsa~/.ssh/id_rsa),则不必将其添加到您的代理。

但。如果这些文件被盗的可能性最小,您可能只允许任何人访问您使用此身份的服务器。简而言之,pwned。

恕我直言,password-less私钥是一种不好的做法,只应在~/.ssh/authorized_keys非常严格的环境中使用。

第四种方案

把它放在你的~/.bashrc

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

第五种方案

编写一个简短的shell脚本,它将运行ssh-add,然后连接如下:

ssh-add ~/.ssh/your-key
ssh user@remotehost

然后,您可以使用一个命令ssh到您的主机。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/2914.html,未经允许,请勿转载。