私は win2008 ボックスにログインしており、scp
win2008 ボックス上の秘密鍵が存在するディレクトリを指す -i オプションを使用して実行しています。
scp -i "cygdrive/c/users/userid/privkey..." user@linux:/dirA/dirB/* .
このコマンドを win2008 ボックスで実行すると、Linux ボックスにログインし、キーを照合してファイルを win2008 ボックスに送ります。キーを指定しないと、パスワードの入力を求められます。
私は ssh-keygen を使用して win2008 ボックスでキーを生成しました。公開キーの下の winsshd セットアップに Linux キーを追加しました。次に、ssh-keygen からキーを取得して Linux ボックスに配置しました。
scp コマンドはキーをどこで探しているのでしょうか?scp
キーをパラメータとして渡さずに、win2008 ボックスから実行するにはどうすればよいですか?
答え1
あなたの質問を正しく理解していれば、いくつかの選択肢があります...
ここで説明されているように、SSH の場合と同じ方法でデフォルトの ID ファイルの場所を設定します...https://stackoverflow.com/questions/84096/setting-the-default-ssh-key-location
または、
scp
次のように修飾子を含めるようにコマンドをエイリアスします...alias scp='scp -i /path/of/keyfile'
どちらも機能するはずですが、オプション 2 よりもオプション 1 をお勧めします。これがより正しい方法です。
答え2
自分なりの答えを見つけたと思います。どうやら scp は id_dsa という名前の秘密鍵ファイルを探していて、そのファイルを .ssh ディレクトリに置きたいようです。cygwin ディレクトリ構造 (パズルのもう 1 つの重要なピース) で home/.ssh を見つけ、id_dsa という名前の秘密鍵ファイルを追加し、-i オプションなしで scp コマンドを実行したらうまくいきました。皆さんの「賢い」アドバイスのおかげで、この問題を理解できました。もう困惑していません! ここでの提案はすべて気に入っています。素早いフィードバックに感謝します。