答案1
第一的,把这个放进去~/.ssh/config
:
Host server
HostName server.com
Port 11000
User user
您将能够ssh server
,然后输入密码。
第二,检查~/.ssh/
您是否有名为id_rsa
和 的文件id_rsa.pub
。如果没有,则您没有设置任何密钥,因此您必须使用 生成一对ssh-keygen
。您可以为密钥设置密码,也可以不设置密码。生成的文件id_rsa.pub
应如下所示:
ssh-rsa 很多随机文本 user@local
第三,ssh到服务器,~/.ssh/authorized_keys
如果文件不存在则创建该文件。然后将您之前生成的内容附加到~/.ssh/id_rsa.pub
此处。这可能意味着将文件内容复制到剪贴板,然后~/.ssh/authorized_keys
在文本编辑器中打开并粘贴内容。
或者,使用命令ssh-copy-id server
(替换server
为 中的名称~/.ssh/config
)。这将执行与上面相同的操作。有时我看到ssh-copy-id
被卡住,所以我不太喜欢它。
您现在应该能够使用 just 进行 ssh ssh server
,除非您选择使用密码来保护您的私钥。一般来说,如果您不使用密码,您应该通过其他方式(例如全盘加密)来保护您的私钥。
第四(仅当您使用密码保护您的私钥时才需要),把这个放进去~/.bashrc
:
start_ssh_agent() {
# Try to use an existing agent
save=~/.ssh-agent
if [[ -e "$save" ]]
then
. "$save" > /dev/null
fi
# No existing agent, start a new one
if [[ -z "$SSH_AGENT_PID" || ! -e "/proc/$SSH_AGENT_PID" ]]
then
ssh-agent > "$save"
. "$save" > /dev/null
ssh-add
fi
}
start_ssh_agent
这样,您只需在每次计算机启动时输入一次密码。
答案2
转到基于密钥的身份验证。
答案3
作为 phunehehe 答案的补充,请参阅Gentoo Linux 钥匙串指南获取指南钥匙链。钥匙扣也使用ssh代理。 ssh-agent 守护进程使密码可用(当 ssh-agent 守护进程终止时它变得不可用),但 keychain reuses an ssh-agent between logins, and optionally prompts for passphrases each time the user logs in
,引用指南。