SSH-如何在〜/ .ssh / config文件中包含“ -t命令”


13

我使用~/.ssh/config文件,以便可以轻松输入ssh myserver,并提供正确的用户名,端口,主机名,身份文件等。

但是对于许多服务器,我要做的第一件事是输入su -以root身份登录。我可以在命令行上的一个命令中完成所有操作,如下所示:ssh myserver -t su -。我可以添加一些~/.ssh/config文件到我的文件中吗?我希望能够做到,ssh myserver-root并且它将做与ssh myserver -t su -?相同的事情?

我知道PermitRootLogin,该服务器不可用,我不愿意将其打开。我宁愿看看是否有一种方法可以在客户端使用ssh来做到这一点。

Answers:


10

我想我会从另一个方向来解决这个问题-在远程服务器上〜/ .ssh / authorized_keys文件中的公钥条目上使用“ command =”,以运行“ su-”命令。

然后,只需对您要以此方式工作的每个主机/别名(“ myserver-root”)使用〜/ .ssh / config文件(IdentityFile选项)中的私钥即可。

sshd(8)中记录了authorized_keys(5)中可用的选项。


是的,正是我想要的。:)我可以完全控制服务器上的〜/ .ssh / authorized_key文件,并且更改它没有问题。
罗里



1

我在OpenSSH源代码中找不到用于伪tty分配的任何配置选项。

但我可以提供有关PermitRootLogin的提示,将其设置为:

PermitRootLogin without-password

并且只允许使用ssh-keys进行root登录。


1

如何在服务器端的〜/ .bashrc中添加类似的内容?

if [ "$SSH_TTY" != "" ]; then su -; logout; fi

1

最好的答案可能是rkthkrjrg的组合。使用PermitRootLogin要求的关键,那么只放与关键command根的authorized_keys文件关键字。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.