私は ~/.ssh/config
ファイルを使用するので、ssh myserver
を簡単に入力でき、正しいユーザー名、ポート、ホスト名、IDファイルなどが提供されます。
ただし、多くのサーバーでは、最初にsu -
を入力してrootとしてログインします。コマンドラインのssh myserver -t su -
のように、これをすべて1つのコマンドで実行できます。 ~/.ssh/config
ファイルに追加できるものはありますか? ssh myserver-root
を実行したいのですが、ssh myserver -t su -
と同じことを行いますか?
私はPermitRootLogin
について知っています。これはこのサーバーではオフになっており、オンにするのをためらいます。クライアント側でsshを使用してこれを実行する方法があるかどうかを確認したいのですが。
私は別の方向からこれにアプローチすると思います-リモートサーバー上の〜/ .ssh/authorized_keysファイルの公開キーエントリで 'command ='を使用して、 "su-"コマンドを実行します。
次に、〜/ .ssh/configファイル(IdentityFileオプション)の秘密鍵を、この方法で動作させたいすべてのホスト/エイリアス( "myserver-root")に使用/参照します。
Authorized_keys(5)で使用可能なオプションは、sshd(8)に文書化されています。
力ルークを使用!
使用する RequestTTY force
あなたの~/.ssh/config
目的のホスト。
ところで。これについてもここで説明します https://unix.stackexchange.com/questions/27713/ssh-config-way-to-spectify-pseudo-tty-allocation-and-command-execution-like-sc/294468 #294468
次のように、rsshと呼ばれるパス(またはそのエイリアス)のディレクトリにスクリプトを追加しないでください。
#!/bin/bash
ssh $1 -t 'su -'
次にそれだけです:
rssh myServer
OpenSSHソースに疑似tty割り当ての構成オプションが見つかりませんでした。
しかし、PermitRootLoginに関するヒントを提供できます。次のように設定します。
PermitRootLogin without-password
また、sshキーを使用したrootログインのみを許可します。
このようなものをサーバー側の〜/ .bashrcに追加してみませんか?
if [ "$SSH_TTY" != "" ]; then su -; logout; fi