ssh-copy-id
.
フラグをssh
使用して提供できる標準入力を介してパスワードを提供したいと思います。コマンドはこのフラグを使用するために他のオプションを送信できることを知っていますが、-S
マニュアルページにはこのフラグを使用する例はありません。ssh
-o
ssh-copy-id
ssh-copy-id
そのため、次のコマンドを使用してstdinを介してSSHパスワードを渡してみました。
$# echo $TMP_PASS | ssh-copy-id -p2222 -i key.pub user@host -o "-S"
しかし、私が得るものは次のとおりです。
/bin/ssh-copy-id: ERROR: command-line: line 0: Bad configuration option: -s
編集する:
フラグを
ssh
使用して提供できる標準入力を介してパスワードを提供したいと思います。-S
この声明は間違っています。私は実際にsudo
この旗について人から読んだことがあります。
答え1
sshpassをインストールし、呼び出しを次に変更してみてくださいssh-copy-id
。
sshpass -p "$TMP_PASS" ssh-copy-id user@host
答え2
オプションに関する情報はどこで見つけましたか-S
?それは全く違うことをします!多重化および制御パスに使用されます。
SSHは標準入力でパスワードを受け入れません一度したがって、展開に認証キーをプリインストールするか(他の方法で)、他の多くの質問で述べたように、またはスクリプトをsshpass
使用する必要があります。expect
答え3
2020/Mac OS X(私の回答をコピーして貼り付けるだから)
SSHパスのインストール(元の回答)
brew install hudochenkov/sshpass/sshpass
sshpassとパスワードをパラメータとしてssh-copy-idを実行します。
sshpass -p $MYPASSWORD ssh-copy-id -i ~/PATH/TO/KEY $USER@$HOST -p $PORT
厳密なホストチェックもオフにするには、デフォルトの-o
SSHに渡されたフラグを使用してください。
sshpass -p hunter2 ssh-copy-id -o StrictHostKeyChecking=no -i ~/PATH/TO/KEY $USER@$HOST -p $PORT
@rednebのソリューションを試して、setsid
util-linuxを介してインストールしました。この回答、パスワード拒否メッセージが表示され続けます。
SSHキーのアップロード中に複数のRaspberry Piを正常に設定するこの戦略を見つけました。私のスクリプトはエラーをssh-keygen -R raspberrypi.local
避けるために毎回実行しますThe ECDSA host key for raspberrypi.local has changed
。