SSH-〜/ .ssh / configファイルに「-tコマンド」を含める方法


13

~/.ssh/configファイルを使用して簡単に入力できるようにssh myserverし、正しいユーザー名、ポート、ホスト名、IDファイルなどを提供します。

ただし、多くのサーバーで最初に行うことはsu -、rootとしてログインすることです。コマンドラインの1つのコマンドでこれをすべて実行できますssh myserver -t su -~/.ssh/configファイルに追加できるものはありますか?私ができるようにしたいしssh myserver-root、それは同じことをしssh myserver -t su -ますか?

について知っていPermitRootLoginますが、このサーバーではオフになっていますが、オンにするのは嫌です。クライアント側でsshを使用してこれを実行する方法があるかどうかを確認したいです。

回答:


10

私は別の方向からこれにアプローチすると思う-「su-」コマンドを実行するには、リモートサーバーの〜/ .ssh / authorized_keysファイルの公開キーエントリで「command =」を使用します。

次に、この方法で作業するすべてのホスト/エイリアス( "myserver-root")に対して〜/ .ssh / configファイル(IdentityFileオプション)の秘密キーを使用/参照します。

authorized_keys(5)で利用可能なオプションは、sshd(8)に文書化されています。


はい、それはまさに私が望むことです。:)私はサーバー上の〜/ .ssh / authorized_keyファイルを完全に制御しており、それを変更しても問題ありません。
ローリー


3

rsshと呼ばれるパス(またはそのエイリアス)のディレクトリにスクリプトを追加してみませんか。

#!/bin/bash
ssh $1 -t 'su -'

それはちょうどです:

rssh myServer

1

OpenSSHソースに擬似tty割り当ての設定オプションが見つかりませんでした。

しかし、PermitRootLoginに関するヒントを与えて、次のように設定できます。

PermitRootLogin without-password

また、ssh-keysによるルートログインのみを許可します。


1

サーバー側の〜/ .bashrcにこのようなものを追加してみませんか?

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

1

最良の答えは、おそらくrkthkrjrgの組み合わせです。PermitRootLoginキーを要求するために使用し、commandキーワードを含むキーのみをルートのauthorized_keysファイルに入れます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.