Как установить scp и s sh в Powershell? - PullRequest
0 голосов
/ 14 февраля 2020

Я установил Po sh -S SH с: Install-Module -Name Po sh -S SH

При попытке выполнить scp или s sh, я получаю что-то вроде ниже. Почему?

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' и 's sh' ниже (ref: 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"

1 Ответ

0 голосов
/ 14 февраля 2020

Модуль, который вы установили, не включает функцию / командлет с именем "scp." Я не установил модуль, но выполнил следующие команды, чтобы определить имена функций и командлетов в модуле.

$x = Find-Module -Name Posh-SSH
$x.AdditionalMetadata.Functions -split ' '
$x.AdditionalMetadata.Cmdlets -split ' '

Редактировать : Вы прочитали справку для команды * scp *? Я сделал. Один из них обязан делать то, что вам нужно. Я установил модуль на моем компьютере и выполнил следующее, чтобы быстро получить краткий обзор команд * scp * в этом модуле.

Install-Module -Name Posh-SSH
Get-Command -Module Posh-SSH -Name *scp* |
ForEach-Object {"$($_.Name): $((Get-Help -Name $_).Synopsis)"}

Get-SCPFile: Download a File from a SSH Server using SCP
Get-SCPFolder: Download a folder from a SSH Server using SCP.
Get-SCPItem: Download from a remote server via SCP a file or directory.
Set-SCPFile: Copies a file to a SSH server using SCP.
Set-SCPFolder: Copies a folder to a SSH server using SCP.
Set-SCPItem: Upload an item, either file or directory to a remote system via SCP.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...