web-dev-qa-db-ja.com

クライアントの公開鍵をWindows OpenSSH SFTP / SSHサーバーの承認済み鍵ファイルにコピーするコマンド

Linuxマシンを使用していて、Windows SFTPサーバーにsftpする必要があります。そのため、最初のステップとして、Linuxマシンに独自のid_rsaファイルとid_rsa.pubを作成します。

次に、id_rsa.pubのテキストをSFTPサーバーのid_rsa.pubにコピーします。

そして、sftp接続は正しく機能します。

ただし、クライアントからサーバーに公開キーをコピーするコマンドについてお聞きします。私はグーグルで検索していて、次のコマンドを取得します:

ssh-copy-id -i id_rsa.pub ftp_user*@10.7.8.32

しかし、次のエラーが発生しました。

「exec」は、内部または外部コマンド、操作可能なプログラム、またはバッチファイルとして認識されません。指定されたパスが見つかりません。

enter image description here

この権利にはいくつかのコマンド出口があると思いますか?代わりに、公開鍵を手動でSFTPサーバーにコピーします。

SFTPバージョンはSFTPプロトコルバージョン3です。

2
Panadol Chong

ssh-copy-idスクリプトは、* nixサーバー(または* nixエミュレーションを備えたサーバー)に対してのみ機能します。これは、サーバーで一部の* nixシェルコマンド(execshumaskrmmkdirtailcatなど)を内部で実行するためです。 )。


キーは手動で設定できます。私はあなたがそれを知っていることを知っていますが、微妙な違いがあるので、Windowsサーバーでそれを行うときは、他の読者の利益のためにとにかくそれを言及します。

主な手順は次のとおりです。

  • Windowsアカウントプロファイルフォルダー(通常は.ssh)にC:\Users\username\.sshフォルダーを作成します。
  • フォルダにauthorized_keysファイルを作成し、公開鍵を追加します。
  • .sshフォルダーとauthorized_keysのACLを確認して、それぞれのWindowsアカウントのみがフォルダーとファイルへの書き込みアクセス権を持つようにします(フォルダーを作成する場合のデフォルトのアクセスレベルは何ですか)および、それぞれのアカウントを使用してログインしているときのファイル)。

詳細については、Win32-OpenSSHでの SSH公開鍵認証の設定 に関する私のガイドを参照してください。


これをローカルマシンから実行する場合は、sftpを使用して実行できます。特に、サーバーにキーがまだ登録されていない場合は、id_rsa.pubファイルをauthorized_keysファイルとしてアップロードするだけです。

$ sftp [email protected]
[email protected]'s password:
Connected to [email protected].
sftp> mkdir .ssh
sftp> cd .ssh
sftp> put id_rsa.pub authorized_keys
Uploading id_rsa.pub to /C:/Users/martin/.ssh/authorized_keys
id_rsa.pub                                   100%  401   197.5KB/s   00:00
sftp> bye                  

上記は基本的に、ssh-copy-idが内部で行うこと– ssh-copy-idauthorized_keysを追加することを除いて、単純なsftpができないことです。追加する必要がある場合は、authorized_keysをローカルマシンにダウンロードし、ローカルに追加して、再度アップロードしてください。


または、(my)WinSCPクライアントを使用して別のWindowsマシンからキーをセットアップし、その Install Public Key to Server関数

WindowsからLinuxサーバーへの公開鍵認証の設定(ppk秘密鍵) に対する私の回答も参照してください。

3
Martin Prikryl