`ssh-copy-id`からstdin経由でパスワードを送信する

`ssh-copy-id`からstdin経由でパスワードを送信する

ssh-copy-id.

フラグをssh使用して提供できる標準入力を介してパスワードを提供したいと思います。コマンドはこのフラグを使用するために他のオプションを送信できることを知っていますが、-Sマニュアルページにはこのフラグを使用する例はありません。ssh-ossh-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

厳密なホストチェックもオフにするには、デフォルトの-oSSHに渡されたフラグを使用してください。

sshpass -p hunter2 ssh-copy-id -o StrictHostKeyChecking=no -i ~/PATH/TO/KEY $USER@$HOST -p $PORT

@rednebのソリューションを試して、setsidutil-linuxを介してインストールしました。この回答、パスワード拒否メッセージが表示され続けます。

SSHキーのアップロード中に複数のRaspberry Piを正常に設定するこの戦略を見つけました。私のスクリプトはエラーをssh-keygen -R raspberrypi.local避けるために毎回実行しますThe ECDSA host key for raspberrypi.local has changed

関連情報