考虑以下命令。这是怎么发生的?
[root@mylocal ~]# ssh myuser@myhost
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
[root@mylocal ~]# su myuser
[myuser@mylocal ~]$ ssh myhost
Welcome Last login: Sat Oct 20 16:28:48 2018 from mylocal
[myuser@myhost~]$
请告知如何修复它,以便我可以以 root 身份执行操作,
[root@mylocal ~]# ssh myuser@myhost
Welcome Last login: Sat Oct 20 16:28:48 2018 from mylocal
[myuser@myhost~]$
谢谢
答案1
使用的默认身份是在本地用户的主目录中,而不是任何远程用户。
对于 OpenSSH,手册中提到的配置文件是配置符合这些条件的不同身份的提示。请参阅 ssh_config 手册页。
编辑 ~root/.ssh/config 并添加
Match User myuser
IdentityFile /home/myuser/.ssh/id_ed25519
IdentityFile /home/myuser/.ssh/id_ecdsa
IdentityFile /home/myuser/.ssh/id_rsa
IdentityFile /home/myuser/.ssh/id_dsa
SSH 身份绝对不应该是公开可读的。这只适用于 root 可以读取任何内容的情况。非特权用户可以将副本放在自己的主目录中,并使用其他名称,例如~/.ssh/myuser
答案2
-i 身份文件
选择一个文件,从中读取 RSA 或 DSA 身份验证的身份(私钥)。对于协议版本 1,默认为 ~/.ssh/identity,对于协议版本 2,默认为 ~/.ssh/id_rsa 和 ~/.ssh/id_dsa。还可以在配置文件中按主机指定身份文件。可以有多个 -i 选项(并在配置文件中指定多个身份)。