我需要通过 ssh(以 root 身份)连接到远程服务器并执行一些 root 级别的操作。我将从没有 root 权限的本地服务器进行 sshing。给定此选项,是否可以使用 (rsa) key 对远程系统执行无密码 ssh?
本地和远程服务器运行 linux。
顺便说一句,我在本地服务器上生成了 key (ssh-keygen -t rsa)。将公钥复制到远程服务器的 .ssh/authorized_keys 文件。 但是它仍然提示输入密码。如果本地和远程用户名(非 root)匹配,相同的设置工作正常。
1 检查您的/etc/ssh/sshd_config 文件是否有“PermitRootLogin yes”。
2 将以下 Shell 代码存储到 nopasswd.sh 中:
#!/bin/sh
scp ~/.ssh/id_dsa.pub $1@$2:~/
ssh $1@$2 "cat ~/id_dsa.pub >> ~/.ssh/authorized_keys; chmod 644 ~/.ssh/authorized_keys; exit"
3 按以下步骤使用它:
$ssh-keygen -t dsa
$ ./nopasswd.sh root REMOTE_HOST