使用 powershell 远程登录 linux

remotely login to linux using powershell

我正在使用以下脚本(ssh 模块)远程登录到 linux 服务器以启动进程。这 'prompts' 我在命令行中获取凭据。我正在尝试通过 Bamboo 运行 这个脚本 那么,有没有一种方法可以在我 运行 脚本时传递凭据,这样它就不会在 运行 运行脚本时提示我输入凭据?

PS C:\SVN_Working> .\linux-maint.ps1 -UserName user1 -Password pass123

    $agents=("cagent01")
      function Start-LinuxAgents([array]$agents){
          if ($agents.length -gt 0){
              $agents | %{
                  New-SshSession -ComputerName $_
                  $ExecStart = Invoke-SshCommand -InvokeOnAll -Quiet -Command './start'
                  Remove-SshSession -ComputerName $_
              }
          }
      }

SSH 能够通过密码或 public/private 密钥对对用户进行身份验证。

您可以创建一个没有密码的私钥,将public密钥添加到Linux服务器上的~/.ssh/authorized_keys,然后在创建时指定您的私钥通过脚本中的 New-SshSession 进行会话。

http://www.powershelladmin.com/wiki/SSH_from_PowerShell_using_the_SSH.NET_library#New-SshSession

并生成 public/private SSH 密钥: https://help.github.com/articles/generating-ssh-keys/

*注意:如果您创建的 SSH 密钥没有密码,则意味着拥有该私钥的任何人都可以使用匹配的 public 密钥访问任何系统。这是一个安全风险 - 您可能需要考虑限制允许用户在远程系统上使用的命令 运行(也是 SSH 功能的一部分)