Windowsでは、PuTTYを使用してSSH経由でリモートサーバーにログインします。バッチスクリプトを使用して、PuTTYを使用してリモートサーバーにSSH接続します。サーバーはLinuxベースのOSを実行しています。
以下のコマンドを使用してこれを行いました:
start C:\Windows\System32\PuTTY.exe -ssh server_name -l pankmish -pw wxyz
ただし、次のエラーが発生しました。
リモートホストに接続できません
代わりにこのコマンドを使用した場合:
start C:\Windows\System32\PuTTY.exe -ssh server_name -l user_name
すべてがうまくいき、ユーザー名「user_name」が含まれたPuTTYウィンドウが表示されます。正しいパスワードを入力すると、サーバーに接続できます。ただし、バッチスクリプトでは、プロンプトが表示されたときにパスワードを入力できません。
どうすればこれを解決できますか?
コマンドラインを使用してパスワードを渡してみましたが、うまくいきました。
start C:\Users\pankmish\Downloads\PuTTY.exe -ssh server_name -l user -pw %1
以下のように私のWindows cmdからコマンドを実行しました
test_file.batパスワード
PuTTYがインストールされ、PuTTY.exeがC:\ Windows\System32にあることを確認します。
メモ帳を開きます。次のように入力します
start PuTTY <username@ip/hostname> -pw <password>
上記をユーザー名、IP、パスワードに置き換え、ファイルを.batファイルとして保存します。それでうまくいくと思います。
このコードを使用して、ユーザーからIPアドレスを入力します。ユーザー名とパスワードを二重引用符 ""で入力します。
@ echo off set/p id = "Enter IP Address:" START "C:\ Program Files\PuTTY.exe" -ssh%id %-l username -pw "password" @ echo
この答え の同じトリックを試すことができます:
@if (@CodeSection == @Batch) @then
@echo off
rem Use %SendKeys% to send keys to the keyboard buffer
set SendKeys=CScript //nologo //E:JScript "%~F0"
rem Start the PuTTY window with the user name only
start C:\Windows\System32\PuTTY.exe -ssh server_name -l user_name
rem Send the password to PuTTY window
%SendKeys% "wxyz{ENTER}"
goto :EOF
@end
WScript.CreateObject("WScript.Shell").SendKeys(WScript.Arguments(0));
結果を投稿してください。
これには2つの方法があります。
start C:\ software\PuTTY.exe -ssh server_name -l user -pw "MyPassword $ 1"
OR
start C:\ software\PuTTY.exe -ssh server_name -l user -pw%1
ファイルを保存し、バッチファイルを次のように実行します。
start c:\ Connection123.bat MyPassword $ 1
以下のコマンドは、batファイル内からそのまま動作します。
"D:\ userdata\panshriv\Desktop\PuTTY.exe" "[email protected]" -pw "mypassword"