配置WindowsSSH密钥登录Linux

一、环境准备

  • 虚拟机里的Centos8一台
  • Windows11

二、Windows密钥和公钥生成

  1. win+R调出运行输入框
  2. 输入cmd,回车-打开终端管理器
  3. 输入:ssh-keygen -t rsa回车

    ssh-keygen -t rsa
  4. 提示存放路径信息(记住这个路径,后面要找公钥),回车

    935da1c3bfab333370a598ab106e099a.png

  5. 提示输入密码(不用设置,直接回车),提示确认再次回车,回车即可

    e649da045bafd47e0458da1d51f91465.png

  6. 查看对应是否生成成功(得到两个文件,一个公钥,一个私钥,公钥上传到Linux上)

    9b10c166e5ed0651918933c2cb7d460d.png


三、使用SSH连接上Linux并上传公钥

  1. 先上查看下Linux的IP地址(这里用的nat模式),确保开启了ssh服务

    //查看分配给linux的ip地址:
    ifconfig
    //查看SSH服务状态
    ps aux | grep sshd

    3a2cf0f94437d8a70518edaf802030da.png

    b816c1e34c55d5be55baaff19e688959.png

  2. Windows使用SSH将公钥上传并登录到linux

    //Windows命令窗口输入:
    C:\Users\钟好烦/.ssh/id_rsa.pub root@192.168.146.133:~/.ssh(具体根据你的系统填写,IP看linux的IP)
    //输入密码,回车

    60d2528165956061af9377b9c9936812.png

  3. 前往linux进行接下来的操作,或者使用ssh登录到linux进行操作(本文选用直接在Windows上使用ssh服务进行操作)

四、Linux上文件移动以及修改

  1. 使用ssh连接登录上Linux

    ssh root@192.168.146.133
    //输入密码,回车

    2d7d1e5ae4fe8d143db8dd5f5fc3b0ff.png

  2. 进入到.ssh目录,将上传的公钥名改为authorized_keys

    //进入目录
    cd .ssh
    //列出详细文件
    ll
    //重置名称
    cat id_rsa.pub >> authorized_keys
    //列出所有文件
    ls

    c644793ae06e29889786bd17ec23618f.png

  3. 修改文件权限

    //文件权限配置为600,.ssh文件夹设为700
    chmod 600 authorized_keys
    cd 
    chmod 700 .ssh

    26a64e47cb0b348b0256b5c1fbd6623e.png

  4. 修改SSH配置文件(一般需要root权限)

    //root用户直接:
    vim /etc/ssh/sshd_config
    //其他用户:
    sudo vim /etc/ssh/sshd_config
  5. 将下面三句话确保存在(少了的加上,有注释的去注释)

    RSAAuthentication yes 
    PubkeyAuthentication yes 
    AuthorizedKeysFile .ssh/authorized_keys

    94b5392a8c6f24fbfd885337c6a3fa4c.png

  6. 重启SSH服务

    systemctl restart sshd
  7. Windows命令行退出linuxSSH登录

    exit
    exit

五、测试登录

//输入:
ssh root@192.168.146.133
//回车

免密成功登录~

 

fff203fba1385809584b3991c3a1909f.png

 

  • 32
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 可以使用 Windows 自带的 PowerShell 来写一个登录 Linux 的脚本。 下面是一个示例脚本: ```powershell # 连接 Linux 主机的 IP 地址 $LinuxHost = "192.168.1.100" # Linux 主机的登录用户名 $Username = "root" # 连接 Linux 主机的端口(默认是 22) $Port = 22 # 建立 SSH 连接 $sshConnection = New-SshConnection -ComputerName $LinuxHost -Username $Username -Port $Port # 连接到 Linux 主机 Connect-SshSession -Connection $sshConnection # 在 Linux 主机上执行命令 Invoke-SshCommand -Session $sshConnection -Command "ls -l" # 断开连接 Disconnect-SshSession -Session $sshConnection ``` 在运行这个脚本之前,你需要安装 Posh-SSH 模块。你可以使用以下命令安装它: ```powershell Install-Module -Name Posh-SSH ``` 如果你想要在脚本中使用密码而不是使用密钥来连接,你可以使用 `-Password` 参数指定密码。 例如: ```powershell $sshConnection = New-SshConnection -ComputerName $LinuxHost -Username $Username -Port $Port -Password "your-password" ``` 希望这个示例能帮到你! ### 回答2: 在Windows系统下,可以使用PowerShell来编写一个SSH登录Linux的脚本。 以下是一个样例脚本,用于使用SSH协议登录Linux远程服务器: ```powershell # 设置要连接的Linux服务器地址、用户名和密码 $serverAddress = "your_server_address" $username = "your_username" $password = "your_password" # 创建SSH会话 $session = New-SSHSession -ComputerName $serverAddress -Credential (New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $username, (ConvertTo-SecureString -String $password -AsPlainText -Force)) # 检查SSH连接是否成功 if ($session) { Write-Host "SSH connection established." # 执行登录后的命令,例如查看当前登录用户的信息 Invoke-SSHCommand -SessionId $session.SessionId -Command "whoami" # 关闭SSH会话 Remove-SSHSession -SessionId $session.SessionId } else { Write-Host "Failed to establish SSH connection." } ``` 请注意,以上脚本的执行需要先安装并引入PowerShell SSH模块,您可以通过在PowerShell终端中运行以下命令来安装: ```powershell Install-Module -Name Posh-SSH ``` 安装完成后,即可运行脚本来实现SSH登录Linux服务器。请将`your_server_address`、`your_username`和`your_password`替换为真实的服务器地址、用户名和密码。 需要注意的是,上述脚本使用PowerShell的SSH模块,如果您习惯使用其他的SSH客户端,也可以根据具体情况选择相应的工具,例如PuTTY或OpenSSH等。 另外,由于题目要求的字数限制,以上仅为一个简单示例脚本,可能并不适用于所有环境,请根据实际需求和服务器配置进行相应的修改和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只小子冯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值