`# ssh myuser@myhost` = 权限被拒绝,但 `su myuser` 则 `$ ssh myhost` 有效。为什么?

`# ssh myuser@myhost` = 权限被拒绝,但 `su myuser` 则 `$ ssh myhost` 有效。为什么?

考虑以下命令。这是怎么发生的?

[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 选项(并在配置文件中指定多个身份)。

相关内容