使用PowerShell远程登录linux

时间:2015-03-12 21:36:01

标签: linux powershell ssh powershell-v3.0

我使用以下脚本(ssh模块)远程登录到linux服务器以启动进程。这会在命令行中提示我输入凭据。我试图通过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 $_
              }
          }
      }

1 个答案:

答案 0 :(得分:1)

SSH可以通过密码或公钥/私钥对验证用户。

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

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

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

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