ssh-keygen 为 Linux 用户创建 ssh 密钥

ssh-keygen 为 Linux 用户创建 ssh 密钥

作为 Sudo 用户,是否可以为同一 Linux 服务器中的用户创建 SSH 密钥?此 Sudo 用户没有切换用户权限。

我有一台服务器,我以 sudo 用户身份登录,比如说“admin”(没有切换用户权限),还有另一个用户,比如说“user1”。我的服务器中有一个脚本,应该以“user1”的身份运行,该脚本应该调用在远程主机中运行的另一个脚本(远程主机有一个名为“user1”的类似用户),在此过程中,“user1”需要一个授权密钥来进行远程主机身份验证。由于 sudo 用户“admin”没有以“user1”身份切换并生成 ssh 密钥的权限,因此我必须以“admin”的身份为“user1”生成 ssh 密钥

答案1

您不需要任何 sudo。假设您在 server2 上为 user1 使用 passwordAuth 运行 sshd,请从 server1 执行以下操作:

mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa -f ~/.ssh/id_rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub user1@server2

此时,~/.ssh/authorized_keys 已安装在 server2 上,并且假设 server2 上启用了 pubkeyAuth,您可以尝试无需密码的 ssh:

ssh user1@server2 ls

现在,如果您想恢复原状(允许服务器 2 上的用户 1 使用 pubKey 登录服务器 1),请从服务器 2 上的用户 1 执行以下操作:

scp user1@server1:.ssh/id_rsa .ssh/id_rsa
chmod 600 .ssh/id_rsa

在服务器1上:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

答案2

是的,这是可以的,没有任何问题。您可以将 ssh 私钥放入文件中.ssh/authorized_keys,就像您 ssh-d 进入该帐户一样。

附言:顺便说一句,没有“sudo 用户”这样的东西。您可能正在考虑能够使用 sudo 命令获取 rootshell 的用户,但找出术语的正确含义并不容易。此外,也没有“切换到用户”这样的东西。您是否考虑过某种类型的su-ing?也许您必须使用众所周知的术语。

答案3

这取决于sudo您的账户是如何配置的。通常,它会受到很多限制,只允许执行一组特定的操作。

如有疑问,请与管理员联系以寻求帮助。

其他方法:ssh 密钥文件不要求位于特定位置。您可以在任何位置创建一组密钥,将公钥添加到远程用户文件authorized_keys,然后使用类似下面的方法:

sudo ssh -i /path/to/privkey user@host 

相关内容