.ssh/config は zsh からリモートセッションを開始します。

.ssh/config は zsh からリモートセッションを開始します。

次のコマンドを入力せずにリモートセッションを開始したい

ssh user@remoteserverip -t zsh

~/.ssh/config次のように、簡単に使用するためにホスト名を変更できることがわかります。

ssh serveralias -t zsh

しかし、そのパラメータを削除したいと思います-t zsh

関数を書かずにこれを達成する方法はありますか?

答え1

数年後、ここに到着した人は2017年からすべてを設定ファイルに入れることができます。

Host host_1
    HostName 1.2.3.4
    User root
    Port 22
    RequestTTY yes
    RemoteCommand zsh

答え2

私はこれが不可能だと思います~/.ssh/config。を-t追加すると無視できますが、RequestTTY yesリモートコマンドを指定できないようです~/.ssh/config

ただし、 を使用すると、以下をzsh追加できます。

alias -g 'serveralias=serveralias -t zsh'

あなたに~/.zshrc

または同様の機能を作成します。

zssh() ssh "$@" -t zsh

答え3

@Stephaneに同意します。使用する方法はありません。別の方法は、リモートサーバー上のファイルを~/.ssh/config file使用することです。~/.ssh/authorized_keys次の行を追加すると:

command="exec zsh" ssh-dss ..... rest of key ....

その後、正常にsshを実行すると、リモートサーバーからzshを取得できます。

はい

サーバーからリモートでSSHを実行します。

$ ssh saml@greeneggs

リモートサーバーで現在の場所を確認してくださいzsh

[saml@greeneggs]~% ps -eaf|grep $$
saml      1974  1973  1 10:34 pts/3    00:00:00 zsh
saml      2023  1974  0 10:34 pts/3    00:00:00 ps -eaf
saml      2024  1974  0 10:34 pts/3    00:00:00 grep --color=auto 1974

このファイルでより複雑な操作を実行できます。次のQ&Aをご覧ください。ssh、特定のシェルを起動し、リモートシステムでコマンドを実行しますか?

答え4

システムシェルの設定を変更することをお勧めします。

  1. 正常にサーバーに接続します。ssh serveralias
  2. chsh変更システムシェルの実行
  3. 入力が/bin/zshzshに設定されました。
  4. 再接続後にssh serveralias表示されます。%

chsh [username]再接続せずに他のユーザーの設定を変更するために使用できます。

関連情報