1

FreeSSHd と PuTTY を SFTP サーバーとクライアントとして使用して、開発マシンで Windows リモート処理を有効にしています。PuTTY の Pageant に秘密鍵をロードして、公開認証のみを使用しています。

Windows Powershell Remoting を使用して、C# コード (Powershell オートメーション アセンブリと名前空間を使用) を使用して、PuTTY の PSFTP コマンド ライン ツール (PATH 環境システム変数に PuTTY のバイナリ フォルダーがある) への呼び出しを実行します。

Windows Powershell を開いて次の呼び出しを実行すると: invoke-command -computername 127.0.0.1 -filepath c:\temp\sftp\invoke.ps1

エラーが発生します:

致命的: 切断されました: サポートされている認証方法がありません (サーバーが送信しました: publickey)

FreeSSHd のログを確認すると、次のように表示されます。

  • 12-06-2011 14:12:04 IP 127.0.0.1 SSH 接続試行。
  • 12-06-2011 14:12:04 IP 127.0.0.1 SSH が切断されました。
4

1 に答える 1

1

(回避策)

リモート PowerShell セッション (Powershell パイプライン) とそのセッション内で呼び出されるコマンドの組み合わせに問題があるようです。秘密鍵から復号化された署名を取得するために PageAnt を使用していましたが、ログを見ると、PSFTP が PageAnt を「見る」ことができず、認証に失敗しているようです。

私はこれを解決しました (セキュリティに関してはあまりお勧めできませんが、これはすべて安全な/非インターネット環境内にあります): PSFTP の -i オプションを使用して秘密鍵の場所を明らかにし、-pw オプションを使用してパスワードを提供しました。その後、呼び出しは成功します。

うまくいけば、これを行うより良い方法があります...

于 2012-03-09T06:24:52.627 に答える