次のコマンドを入力せずにリモートセッションを開始したい
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
システムシェルの設定を変更することをお勧めします。
- 正常にサーバーに接続します。
ssh serveralias
chsh
変更システムシェルの実行- 入力が
/bin/zsh
zshに設定されました。 - 再接続後に
ssh serveralias
表示されます。%
chsh [username]
再接続せずに他のユーザーの設定を変更するために使用できます。