web-dev-qa-db-ja.com

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

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

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

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

13
Rory

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

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

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

10
jrg

力ルークを使用!

使用する 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

8

次のように、rsshと呼ばれるパス(またはそのエイリアス)のディレクトリにスクリプトを追加しないでください。

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

次にそれだけです:

rssh myServer
3
Kyle Brandt

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

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

PermitRootLogin without-password

また、sshキーを使用したrootログインのみを許可します。

1
rkthkr

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

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

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

1
mwalling