-i オプションなしで scp コマンドを使用して秘密鍵を見つける方法

-i オプションなしで scp コマンドを使用して秘密鍵を見つける方法

私は win2008 ボックスにログインしており、scpwin2008 ボックス上の秘密鍵が存在するディレクトリを指す -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

あなたの質問を正しく理解していれば、いくつかの選択肢があります...

  1. ここで説明されているように、SSH の場合と同じ方法でデフォルトの ID ファイルの場所を設定します...https://stackoverflow.com/questions/84096/setting-the-default-ssh-key-location

  2. または、scp次のように修飾子を含めるようにコマンドをエイリアスします...alias scp='scp -i /path/of/keyfile'

どちらも機能するはずですが、オプション 2 よりもオプション 1 をお勧めします。これがより正しい方法です。

答え2

自分なりの答えを見つけたと思います。どうやら scp は id_dsa という名前の秘密鍵ファイルを探していて、そのファイルを .ssh ディレクトリに置きたいようです。cygwin ディレクトリ構造 (パズルのもう 1 つの重要なピース) で home/.ssh を見つけ、id_dsa という名前の秘密鍵ファイルを追加し、-i オプションなしで scp コマンドを実行したらうまくいきました。皆さんの「賢い」アドバイスのおかげで、この問題を理解できました。もう困惑していません! ここでの提案はすべて気に入っています。素早いフィードバックに感謝します。

関連情報