2017-03-16 9 views
1

ExcelにVBAコードを書きました。私はSFTPとファイルpscp.exeを使ってテキストファイルを自分のサーバーに転送しようとしています。ファイルは転送されず、pscp.exeのウィンドウが表示されます。pscp.exeを使用してVBA + ExcelのUnixサーバーにファイルを転送するときに「サーバーのホストキーがキャッシュされていません」

サーバーのホストキーがレジストリにキャッシュされていません。

は、私は次のようなメッセージが表示されます。サーバーがあなたが思っているコンピューターであるという保証はありません。 ssh-rsa XXXX XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XXこのホストを信頼する場合は、 y "を押してPuTTYのキャッシュにキーを追加し、接続を続けます。キーをキャッシュに追加せずに一度だけ接続を続けたい場合は、「n」と入力します。このホストを信頼しない場合は、Returnキーを押して接続を破棄します。キーをキャッシュに保存しますか? (y/n)

問題を解決するにはどうすればよいですか?

Dim Polku As String 
Polku = "/" 

Dim Palvelin As String 
Palvelin = "grid1.example.xxx" 

Dim Kayttajatunnus As String 
Kayttajatunnus = "[email protected]" 

Dim Salasana As String 
Salasana = "Password2012" 

Dim Tiedosto As String 
Tiedosto = "filename.txt" 

Dim PolkuOhjelma As String 
Dim PolkuTiedosto As String 

If Right$(ActiveWorkbook.Path, 1) <> "\" Then 
    PolkuOhjelma = ActiveWorkbook.Path & "\pscp.exe" 
    PolkuTiedosto = ActiveWorkbook.Path & "\" & Tiedosto 
Else 
    PolkuOhjelma = ActiveWorkbook.Path & "pscp.exe" 
    PolkuTiedosto = ActiveWorkbook.Path & Tiedosto 
End If 

Dim Siirtokomento As String 
Siirtokomento = Chr$(34) & PolkuOhjelma & Chr$(34) & " -sftp -l " & Kayttajatunnus & _ 
    " -pw " & Salasana & " " & Chr$(34) & PolkuTiedosto & Chr$(34) & " " & _ 
    Palvelin & ":" & Polku 

Debug.Print Siirtokomento 

Shell Siirtokomento, vbNormalFocus 
+0

コマンドウィンドウを開いて「Siirtokomento」コマンドに貼り付けて実行すると、どうなりますか? –

+0

[この回答](http://stackoverflow.com/a/41416923/4088852)を参照してください。 plinkに特有ですが、pscp.exeがstdoutに出力する場合は、おそらく同様の方法を使用できます。 – Comintern

+0

'Siirtokomento'の価値は何ですか? 'PolkuOhjelma'の後に' Chr $(34) 'を2つ持っているのはなぜですか? –

答えて

0

あなたは明示的に信頼ホスト鍵のフィンガープリントを指定する-hostkey switchを使用する必要があります。

-hostkey XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX 
+0

多分= – xms

+0

修正。ごめんなさい。一定。 –

関連する問題