web-dev-qa-db-ja.com

zshでリモートセッションを開始するための.ssh / config

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

ssh user@remoteserverip -t zsh

~/.ssh/configのホスト名を変更して、次のようなものを使用できることを知っています。

ssh serveralias -t zsh

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

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

11
brngp

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

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

alias -g 'serveralias=serveralias -t zsh'

あなたの~/.zshrcに。

または、次のような関数を作成します。

zssh() ssh "$@" -t zsh
6

@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、特定のシェルを起動し、リモートマシンでコマンドを実行しますか? を参照してください。

5
slm

数年後にここに到着する人にとっては、2017年以降、すべてを設定ファイルに入れることが可能です:

Host host_1
    HostName 1.2.3.4
    User root
    Port 22
    RequestTTY yes
    RemoteCommand zsh
4
Saskia Keil
Sudo usermod -s /bin/zsh yourusername
2
Sammitch

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

  1. 通常どおりサーバーに接続します。 ssh serveralias
  2. chshを実行してシステムシェルを変更します
  3. /bin/zshと入力してzshに設定します
  4. ssh serveraliasに再接続すると、%が表示されます

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

0
Ch.Idea