如何为WinSCP PowerShell会话配置添加私钥(基于官网示例)
为WinSCP PowerShell代码添加私钥配置
实现方法
要添加私钥认证,需修改SessionOptions的属性配置:移除原有的Password字段(私钥认证无需密码),添加私钥文件路径;若你的私钥设置了保护密码,还需补充私钥密码项。
配置代码位置
私钥相关配置直接放在$sessionOptions的属性哈希表中,与HostName、UserName等配置同级即可。
修改后的完整代码
# Setup session options $sessionOptions = New-Object WinSCP.SessionOptions -Property @{ Protocol = [WinSCP.Protocol]::Sftp HostName = "example.com" UserName = "user" # 移除原Password项,添加私钥文件路径 SshPrivateKeyPath = "C:\path\to\your\privatekey.ppk" # 替换为你的私钥实际路径 # 如果私钥有保护密码,取消下面一行注释并填写对应密码 # SshPrivateKeyPassphrase = "your_private_key_passphrase" SshHostKeyFingerprint = "ssh-rsa 2048 xxxxxxxxxxx..." } $session = New-Object WinSCP.Session # Connect $session.Open($sessionOptions)
注意事项
- 私钥文件建议使用WinSCP生成的
.ppk格式,若为OpenSSH格式私钥,需先转换为PPK格式后再使用。 - 确保运行脚本的账号拥有私钥文件的读取权限,避免因权限不足导致认证失败。
内容的提问来源于stack exchange,提问作者ecuso
相关产品推荐
相关产品推荐

