我正在尝试制作一个简单的 PowerShell 函数来拥有 Linux 风格的 ssh 命令。如:
ssh username@url
我正在使用 plink 来执行此操作,这是我编写的函数:
function ssh {
param($usernameAndServer)
$myArray = $usernameAndServer.Split("@")
$myArray[0] | C:\plink.exe -ssh $myArray[1]
}
如果用户输入正确,$myArray[0] 是用户名,$myArray[1] 是 URL。因此,它连接到 URL,当系统提示您输入用户名时,用户名会使用管道流式传输。一切正常,除了管道不断输入用户名 ($myArray[0]) 并且一遍又一遍地作为密码输入。例子:
PS C:\Users\Mike> ssh xxxxx@yyyyy
login as: xxxxx@yyyyy's password:
Access denied
xxxxx@yyyyy's password:
Access denied
xxxxx@yyyyy's password:
Access denied
xxxxx@yyyyy's password:
Access denied
xxxxx@yyyy's password:
Access denied
xxxxx@yyyyy's password:
FATAL ERROR: Server sent disconnect message
type 2 (protocol error):
"Too many authentication failures for xxxxx"
其中用户名已替换为 xxxxx,URL 已替换为 yyyyy。
基本上,我需要找出在用户名($myArray[0])输入一次后如何阻止脚本在用户名($myArray[0])中进行管道传输。
有任何想法吗?我在整个互联网上寻找解决方案,但没有找到任何东西。