最近我将桌面从 Ubuntu 默认桌面 (Unity) 更改为 Kubuntu 桌面。我不明白为什么这会导致我的 SSH 密钥文件配置出现错误。
FE 在“主机”计算机上有一个“用户”用户,其中我的一个密钥(PK 在本地 ~/.shh 中)已添加到授权密钥中。我想要做的是:
ssh user@host
这在 Unity 中运行良好(如果我切换回 Unity 仍然有效),但是当我登录 Kubuntu 桌面时,系统会提示我输入密码。
这在两个桌面上都可以正常工作:
ssh user@host -i ~/.ssh/key
所以我猜测 ssh 程序找不到我的密钥文件 - 但是为什么桌面很重要,我该如何解决这个问题?
来自我的本地 .ssh 目录 (ls -la) 的相关部分:
drwx------ 2 szaboadam szaboadam 4096 okt 7 16:32 .
-rw------- 1 szaboadam szaboadam 1675 okt 7 16:32 key
-rw-r--r-- 1 szaboadam szaboadam 415 okt 7 16:32 key.pub
从服务器 .ssh 目录:
drwx------ 2 git git 4096 Oct 7 16:33 .
-rwx------ 1 git git 566 Oct 7 16:33 authorized_keys
我正在使用 Ubuntu 14.04。谢谢您的帮助!
答案1
奇怪的是,该命令在 Unity 上有效,因为通常情况下,~/.ssh/id_*
除非密钥被覆盖,否则密钥都是从中读取的。您可以将key
和分别重命名key.pub
为id_*
和id_*.pub
,其中*
是dsa
、rsa
或ecdsa
,ed25519
具体取决于密钥的类型(您可以从公钥文件中获取)。
或者,~/.ssh/config
在IdentityFile ~/.ssh/key
其中创建。
编辑:您还可以使用~/.ssh/config
在每个主机上指定密钥,例如
Host host1
IdentityFile ~/.ssh/key1
Host host2
IdentityFile ~/.ssh/key2