SSH経由でログインしてコマンドを実行しますが、bashを終了したくありません。

SSH経由でログインしてコマンドを実行しますが、bashを終了したくありません。

SSH経由で別のCentOSに接続するときにPS1を変更したいと思います。

    strshell = 'PS1="remote!"'
    os.system("ssh -i %s -l%s -p%s %s %s"%(SSH_KEY,SSH_USER,SSH_PORT,des,strshell))  

SSHは自動的に終了します。私はこの殻の中にとどまりたいです。達成する方法。

私は別の方法で置き換えました。

 tin = ' sudo -i ; export PS1="Remote! \W :"; exec /bin/bash -i'
 os.system("ssh  -i%s -l%s -p%s %s -t%s" % (SSH_KEY, SSH_USER, SSH_PORT, des, tin))  

ところで、リモートコンピュータプロンプトの代わりにローカルコンピュータプロンプトを変更しました。なぜ?
os.systemはPython関数です

ベストアンサー1

sudo -iターゲットユーザーとしてログインシェルを実行します。残りはexport PS1...シェルが終了した後にのみ実行されます。

また、~/.bashrcPS1をオーバーライドして環境に渡すこともできますが、これは役に立ちません。

あなたは試すことができます:

ssh -t host 'sudo env PROMPT_COMMAND="PS1=\"Remote! \W: \"
             unset PROMPT_COMMAND" bash -l'

(対象ユーザーが~/.bashrcこれを設定していないと仮定$PROMPT_COMMAND)。

おすすめ記事