我安装了 Posh-SSH:Install-Module -Name Posh-SSH
尝试执行 scp 或 ssh 时,我得到如下内容。为什么?
scp : The term 'scp' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the
spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ scp
+ ~~~
+ CategoryInfo : ObjectNotFound: (scp:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
更新 在@tommymaynard 的帮助下,我可以看到所有可用的命令:
PS C:\WINDOWS\system32> $x = Find-Module -Name Posh-SSH
PS C:\WINDOWS\system32> $x.AdditionalMetadata.Functions -split ' '
Get-PoshSSHModVersion
Get-SFTPChildItem
Get-SFTPContent
Get-SFTPLocation
Get-SFTPPathAttribute
Get-SFTPSession
Get-SSHPortForward
Get-SSHSession
Get-SSHTrustedHost
Invoke-SSHCommand
Invoke-SSHCommandStream
Invoke-SSHStreamExpectAction
Invoke-SSHStreamExpectSecureAction
Invoke-SSHStreamShellCommand
Move-SFTPItem
New-SFTPFileStream
New-SFTPItem
New-SFTPSymlink
New-SSHDynamicPortForward
New-SSHLocalPortForward
New-SSHRemotePortForward
New-SSHShellStream
New-SSHTrustedHost
Remove-SFTPItem
Remove-SFTPSession
Remove-SSHSession
Remove-SSHTrustedHost
Rename-SFTPFile
Set-SFTPContent
Set-SFTPLocation
Set-SFTPPathAttribute
Start-SSHPortForward
Stop-SSHPortForward
Test-SFTPPath
PS C:\WINDOWS\system32> $x.AdditionalMetadata.Cmdlets -split ' '
Get-SCPFile
Get-SCPFolder
Get-SCPItem
Get-SFTPFile
Get-SFTPItem
New-SFTPSession
New-SSHSession
Set-SCPFile
Set-SCPFolder
Set-SCPItem
Set-SFTPFile
Set-SFTPFolder
Set-SFTPItem
从那里,您将使用哪个命令来替换下面的“scp”和“ssh”(参考:https ://code.visualstudio.com/docs/remote/troubleshooting#_configuring-key-based-authentication )?
$REMOTEHOST="your-user-name-on-host@host-fqdn-or-ip-goes-here"
scp "$env:USERPROFILE\.ssh\id_rsa.pub" "${REMOTEHOST}:~/tmp.pub"
ssh "$REMOTEHOST" "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat ~/tmp.pub >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && rm -f ~/tmp.pub"