您的位置:首页 > 文旅 > 旅游 > 开发区招聘信息最新招聘_网络营销pdf_怎样做网站推广_小说推文推广平台

开发区招聘信息最新招聘_网络营销pdf_怎样做网站推广_小说推文推广平台

2024/12/21 19:33:01 来源:https://blog.csdn.net/weixin_51524504/article/details/144471391  浏览:    关键词:开发区招聘信息最新招聘_网络营销pdf_怎样做网站推广_小说推文推广平台
开发区招聘信息最新招聘_网络营销pdf_怎样做网站推广_小说推文推广平台

如何在Windows与Linux(Ubuntu/CentOS)之间配置SSH免密登录

文章目录

      • 如何在Windows与Linux(Ubuntu/CentOS)之间配置SSH免密登录
        • 一、Windows到Linux的免密登录配置
          • 1. 确认并安装OpenSSH
          • 2. 生成SSH密钥对
          • 3. 将公钥复制到远程服务器
            • 方法一:使用SCP命令
            • 方法二:手动复制粘贴
          • 4. 检查权限设置
          • 5. 启用SSH服务并重启
          • 6. 测试免密登录
          • 7. 设置默认用户名(可选)
        • 二、Linux到其他机器(Windows或Linux)的免密登录配置
          • 1. 在Linux上生成SSH密钥对
          • 2. 配置Windows上的OpenSSH服务
          • 3. 将公钥复制到Windows
          • 4. 设置权限
          • 5. 测试连接
        • 三、注意事项与总结
          • 多用户环境下的配置方法
          • 防火墙和SELinux配置

在日常开发和运维中,SSH免密登录可以显著提升操作效率,同时保证连接的安全性。以下详细讲解如何在Windows与Linux之间配置SSH免密登录,并针对多种场景提供实际解决方案。


一、Windows到Linux的免密登录配置
1. 确认并安装OpenSSH

在Windows端,SSH客户端是实现免密登录的基础。首先确认系统中是否已安装OpenSSH客户端:

  • 确认是否安装
    打开命令提示符(CMD)或PowerShell,输入以下命令检查是否已安装:

    ssh
    

    如果出现相关的SSH帮助信息,说明OpenSSH客户端已安装。如果提示未找到命令,可以通过以下方式进行安装:

  • 安装OpenSSH客户端
    适用于Windows 10及以上版本:

    • 打开“设置” -> “应用” -> “可选功能”,找到并安装“OpenSSH客户端”。

    • 或者在PowerShell中执行以下命令:

      Add-WindowsCapability -Online -Name OpenSSH.Client*
      
2. 生成SSH密钥对

安装完成后,生成一对公钥和私钥。打开PowerShell或命令提示符,执行以下命令:

ssh-keygen -t rsa -b 4096
  • -t rsa 指定使用RSA算法。
  • -b 4096 设置密钥长度为4096位(增强安全性)。

系统会提示保存密钥的位置,默认路径为 C:\Users\YourUsername\.ssh\id_rsa,建议使用默认路径。随后,系统会要求设置密码短语。如果需要真正的免密登录,可以直接按回车跳过,但如果追求更高的安全性,建议设置密码短语。

3. 将公钥复制到远程服务器

生成密钥对后,需要将公钥文件复制到Linux服务器的 ~/.ssh/authorized_keys 中。由于Windows默认没有 ssh-copy-id 工具,以下是常见的几种方法:

方法一:使用SCP命令

利用SCP将公钥传输到Linux服务器上。

scp C:\Users\YourUsername\.ssh\id_rsa.pub username@remote_host:/tmp/id_rsa.pub

然后登录到Linux服务器,执行以下命令将公钥添加到 authorized_keys 文件:

mkdir -p ~/.ssh && chmod 700 ~/.ssh
cat /tmp/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
rm /tmp/id_rsa.pub
方法二:手动复制粘贴

打开Windows上的公钥文件:

notepad C:\Users\YourUsername\.ssh\id_rsa.pub

将公钥内容复制到剪贴板。登录Linux服务器后,执行以下命令:

mkdir -p ~/.ssh && chmod 700 ~/.ssh
echo "粘贴你的公钥内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
4. 检查权限设置

Linux服务器上,.ssh目录及文件的权限设置非常重要,否则可能导致免密登录失败:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chown -R username:username ~/.ssh
5. 启用SSH服务并重启

某些Linux发行版可能需要确保SSH服务允许基于密钥的身份验证。编辑SSH配置文件 /etc/ssh/sshd_config

sudo vim /etc/ssh/sshd_config

确保以下选项已启用:

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

保存后重启SSH服务:

sudo systemctl restart sshd
6. 测试免密登录

现在,你可以尝试从Windows客户端通过SSH连接到Linux服务器:

ssh username@remote_host

如果配置正确,你将直接登录而无需输入密码。

7. 设置默认用户名(可选)

为简化SSH命令,可以在Windows的 C:\Users\YourUsername\.ssh\config 文件中添加以下内容:

Host aliasHostName remote_hostUser usernameIdentityFile ~/.ssh/id_rsa

这样,你可以通过以下简化命令连接到服务器:

ssh alias

二、Linux到其他机器(Windows或Linux)的免密登录配置
1. 在Linux上生成SSH密钥对

在Linux终端上生成SSH密钥对:

ssh-keygen -t rsa -b 4096

默认保存路径为 ~/.ssh/id_rsa

2. 配置Windows上的OpenSSH服务

在Windows端启用OpenSSH Server:

  • 确认安装OpenSSH Server
    在PowerShell中执行:

    Add-WindowsCapability -Online -Name OpenSSH.Server*
    
  • 启动并设置服务为开机自启

    Start-Service sshd
    Set-Service -Name sshd -StartupType 'Automatic'
    
  • 检查防火墙规则:确保允许SSH流量通过防火墙。

    New-NetFirewallRule -Name sshd -DisplayName "OpenSSH Server" -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
    
3. 将公钥复制到Windows

从Linux端将公钥复制到Windows用户的 .ssh/authorized_keys 中:

  • 方法一:使用SCP传输公钥

    scp ~/.ssh/id_rsa.pub user@windows_host:C:\Users\user\.ssh\authorized_keys
    
  • 方法二:手动复制粘贴
    在Linux终端查看公钥内容:

    cat ~/.ssh/id_rsa.pub
    

    然后在Windows上创建并编辑 C:\Users\YourUsername\.ssh\authorized_keys 文件,将公钥内容粘贴进去。

4. 设置权限

在Windows端,确保 .ssh 目录及文件权限正确:

icacls C:\Users\YourUsername\.ssh /grant YourUsername:F
icacls C:\Users\YourUsername\.ssh\authorized_keys /inheritance:r
5. 测试连接

从Linux端通过SSH尝试连接到Windows机器:

ssh user@windows_host

三、注意事项与总结
多用户环境下的配置方法

如果在同一台服务器上多人开发,可以考虑以下方案:

  1. 每人一个文件夹,统一管理分支

    • 克隆同一个仓库到不同文件夹。
    • 每人在自己文件夹中创建独立的分支开发,定期同步主分支。
  2. 使用Fork机制

    • 每个人从主仓库Fork到自己的远程仓库。
    • 在服务器上各自克隆自己的远程仓库,开发完成后提交到自己的仓库,再通过Pull Request将代码合并到主仓库。
防火墙和SELinux配置

在Linux服务器上,注意开放SSH服务的端口(通常是22):

sudo ufw allow ssh

如果使用的是CentOS且启用了SELinux,还需确保SELinux策略允许SSH连接。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com