使用 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 功能的一部分)
我正在使用以下脚本(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 功能的一部分)