【问题标题】:passwordless ssh to remote system as root [closed]以root身份到远程系统的无密码ssh [关闭]
【发布时间】:2013-03-12 09:21:51
【问题描述】:

我需要 ssh(以 root 身份)到远程服务器并执行一些 root 级别的操作。我将从没有 root 权限的本地服务器 ssh。鉴于此选项,是否可以使用 (rsa) 密钥对远程系统执行无密码 ssh?

本地和远程服务器运行 linux。

顺便说一句,我在本地服务器上生成了密钥 (ssh-keygen -t rsa)。将公钥复制到远程服务器的 .ssh/authorized_keys 文件。 但它仍然不断提示输入密码。如果本地和远程用户名(非 root)匹配,相同的设置可以正常工作。

【问题讨论】:

  • 这是题外话。但也不清楚你在问什么。您可以使用 ssh root@myserver(或任何用户名)以 root 身份从任何地方通过 SSH 连接到服务器,但您无法避免某种形式的身份验证...使用 SSH 密钥进行身份验证已被广泛记录...
  • 我正在使用私钥(ssh-keygen -t rsa)。但是它一直提示输入密码
  • 您是否将公钥添加到/root/.ssh/authorized_keys 文件?另外,您以 root 身份运行的 ssh 命令是什么?它应该是 ssh root@server 的形式,以确保 ssh 知道您正在尝试在远程计算机上以用户 root 的身份登录。

标签: linux bash ssh


【解决方案1】:

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

【讨论】:

  • 谢谢 - 这解决了问题! "PermitRootLogin 是"
  • 很棒的脚本;不过,我不得不对其进行一些编辑
  • 谢谢你救了我! :)
【解决方案2】:

是的。 SSH 不会在不同系统上的帐户名之间建立连接,因此如果您有有效的密钥对,您可以以非 root 身份 ssh 到 root。

【讨论】:

    【解决方案3】:

    在 ~/.ssh/config:

    Host rootRemoteSystem
    HostName RemoteSystem
    User root
    

    然后:

    ssh-copy-id rootRemoteSystem
    

    那么你可以这样做:

    ssh rootRemoteSystem
    

    【讨论】:

      最近更新 更多