web-dev-qa-db-ja.com

正確には、ssh-copy-idは何をしますか?

Ssh-copy-idコマンドは正確に何をしますか?私はそれを何度も使用しました、そしてそれは素晴らしい働きをします。ただし、.pubキーファイルを手動で切り取ってリモートのauthorized_keysに貼り付けようとすると、機能しません。

.pubを切り取って貼り付けたauthorized_keysファイルの内容と、その後ssh-copy-idを使用したファイルの内容を比較しましたが、空白を含め、2つの間に違いは見られません。

公開鍵をauthorized_keysにコピーする以外にssh-copy-idが行うことはありますか?

17
DanHeidel

この小さなコマンドは実際に機能するはずです。 Macを使用している場合など、ssh-copy-idがない場合は常に使用します。

cat ~/.ssh/id_rsa.pub | ssh <user>@<hostname> 'cat >> ~/.ssh/authorized_keys'

IMO手動でコピーして貼り付けるよりも優れています。この場合、ファイルに含まれるコンテンツを正確に把握できます。

12
ganqqwerty

私は通常、あなたが説明するようにキーをauthorized_keysにコピーアンドペーストします(ssh-copy-idを忘れます)ので、それは機能します。ファイルを作成する場合は、chmod 600 ~/.ssh/authorized_keysが必要であることに注意してください。

ssh-copy-idはシェルスクリプトであるため、テキストエディターで開いて、その機能を確認できます。これは、関連するビットのように見えます。

printf '%s\n' "$NEW_IDS" | ssh "$@" "
    umask 077 ;
    mkdir -p .ssh && cat >> .ssh/authorized_keys || exit 1 ;
    if type restorecon >/dev/null 2>&1 ; then restorecon -F .ssh .ssh/authorized_keys ; fi"

restorecon 最後の行でデフォルトのSELinuxセキュリティコンテキストを復元します。私はそれを実行する必要はありませんでしたが、あなたの場合は必要かもしれません。

7
Jackson Pauls