私のデフォルトセッションがcshである間に、bashの下でsshを使用してリモートサーバでコマンドを実行したいとします。SSH経由でリモートLinuxサーバ上でコマンドを実行しているときにCSHの代わりにBASH
最小限の例(真のコマンドは、より複雑で、私のIDEリモートデバッガによって生成される):
ssh hostname 'ls | head'
私は、管理者権限を持っていません。どのように私は、次の
setenv SHELL /bin/bash
exec /bin/bash --login
を.cshrcに追加しようとしたが、SSHを介してコマンドを送信する際には、コンソールがフリーズエラーchsh: cannot lock /etc/passwd; try again later.
とchsh -s /bin/bash
結果(通常のsshの作品中)
任意のアイデアをしようとそれを解決するには?
注:IDEのデバッガで自動的に生成されるsshコマンドにアクセスできないため、ホストを構成するソリューションが必要です。 IDE上では、ホスト名とポート番号のみを設定できます。 IDEによって示さ 実際のコマンド(再び、私はそれを編集することはできません):
ssh://[email protected]:2213/home/lab/username/anaconda2/envs/tf_011b/bin/python -u /specific/a/home/cc/cs/username/.pycharm_helpers/pydev/pydevd.py --multiproc --qt-support --client '0.0.0.0' --port 41823 --file /home/lab/username/remote_py/nlteach/show_attend_and_tell/train_saat_classifier.py --train_dir=/home/lab/username/nlteach/output/train/d=cub/imSD=11%imSP=rnd%tcSP=cvpr16/CSat/res50%lr0_02LrDTexpLrDc0_938OrmspWDc0/emb=512%ldTrn=0%nU=512%noHid=1%lr=0_02%lrDT=fix%lrDc=1%o=rmsp/
私がなぜわからないが、bashの上で有効(EDIT)したがってssh hostname '/bin/bash -c "ls | head"'
のようなソリューションは、文句を言わない
EDIT2を適用しますそれがcshホスト上で失敗する間、それは動作します。
ありがとうございます!
送信された実際のコマンドを追加してください(機密情報をはっきりとスクラブしてください)。 – bishop
@bishop、それに応じて編集されます – yuval
'chsh'を使用する権限がない場合、使用されているデフォルトのシェルを変更する方法はありません。あなたがコマンドに '' bash -c ''を置くことができないなら、あなたは嫌な思いをするでしょう。 – Barmar