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」は、内部または外部コマンド、操作可能なプログラム、またはバッチファイルとして認識されません。指定されたパスが見つかりません。
この権利にはいくつかのコマンド出口があると思いますか?代わりに、公開鍵を手動でSFTPサーバーにコピーします。
SFTPバージョンはSFTPプロトコルバージョン3です。
ssh-copy-id
スクリプトは、* nixサーバー(または* nixエミュレーションを備えたサーバー)に対してのみ機能します。これは、サーバーで一部の* nixシェルコマンド(exec
、sh
、umask
、rm
、mkdir
、tail
、cat
など)を内部で実行するためです。 )。
キーは手動で設定できます。私はあなたがそれを知っていることを知っていますが、微妙な違いがあるので、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-id
がauthorized_keys
を追加することを除いて、単純なsftp
ができないことです。追加する必要がある場合は、authorized_keys
をローカルマシンにダウンロードし、ローカルに追加して、再度アップロードしてください。
または、(my)WinSCPクライアントを使用して別のWindowsマシンからキーをセットアップし、その Install Public Key to Server関数 。
WindowsからLinuxサーバーへの公開鍵認証の設定(ppk秘密鍵) に対する私の回答も参照してください。