linux系统免登陆之SSH

     linux免登陆最常见的方式就是使用基于ssh协议的公钥认证方式。其原理就是将你机器的公钥分发到需要免登陆的机器上。

    Step1:安装ssh服务:sudo apt-get install ssh 并开启服务 service ssh start

    Step2 :使用ssh生成公钥证书

    在$home/.ssh目录下生成公钥:ssh-keygen -t dsa

    

ssh-keygen -t dsa

Generating public/private dsa key pair.
Enter file in which to save the key (/Users/songjing/.ssh/id_dsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /Users/songjing/.ssh/id_dsa.
Your public key has been saved in /Users/songjing/.ssh/id_dsa.pub.
The key fingerprint is:
3d:65:12:77:dc:c1:ba:c8:be:70:0e:66:21:71:8c:03 songjing@127.168.176.60.broad.hz.zj.dynamic.163data.com.cn
ssh可以使用-t指定密钥类型:dsa或者rsa生成对应的密钥。记住 这个过程中只需要不停的按enter即可。

   Step3:将公钥copy到主机和需要登陆的机器的authorized_keys文件中(如么有,创建即可)

   在A主机,scp ~/.ssh/id_dsa.pub  userB@10.20.0.2:~/.ssh/id_dsa.pub
   此过程中需要输入B主机的userB的密码。
   然后,在A,B主机:cat ~/.ssh/id_dsa.pub  >> ~/.ssh/authorized_keys (将id_dsa.pub的内容追加到 authorized_keys中)

  Step4,接下来就可以通过A机器无需密码就能登陆到B机器上并且执行scp等命令

### Linux SSH 登录教程及配置方法 #### 一、SSH 基础概念 Secure Shell (SSH) 是一种网络协议,用于安全地访问远程计算机。它提供了加密通信通道,确保数据传输的安全性[^1]。 #### 二、SSH 客户端与服务端 为了实现通过 SSH 进行免密码登录,需要分别在客户端和服务端完成相应的配置。以下是具体的操作流程: 1. **确认 OpenSSH 已安装** - 大多数现代 Linux 发行版默认已预装 `openssh-client` 和 `openssh-server`。如果未安装,可以通过以下命令安装: ```bash sudo apt-get update sudo apt-get -y install openssh-server ``` 此外,还需要启动并设置 SSH 服务开机自启: ```bash sudo systemctl start ssh sudo systemctl enable ssh ``` 2. **生成密钥对** - 使用 `ssh-keygen` 命令生成 RSA 密钥对,默认存储路径为 `~/.ssh/id_rsa` 及其对应的公钥文件 `id_rsa.pub`。 ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 上述命令会提示指定保存位置以及设置密码(可选)。完成后会在用户的 `.ssh` 文件夹下生成私钥和公钥文件[^2]。 3. **复制公钥至目标主机** - 将本地机器上的公钥拷贝到目标服务器上,通常使用 `ssh-copy-id` 命令简化操作过程: ```bash ssh-copy-id user@remote_host ``` 如果无法直接运行该工具或者希望手动执行此步骤,则需将公钥内容追加到目标主机的 `~/.ssh/authorized_keys` 文件中: ```bash cat ~/.ssh/id_rsa.pub | ssh user@remote_host "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys" ``` 4. **验证无密码登录功能** - 配置完毕后尝试带密码的方式连接远程主机: ```bash ssh user@remote_host ``` 成功进入即表明配置正确[^3]。 5. **调整 SSHD 配置参数(可选)** - 编辑 `/etc/ssh/sshd_config` 文件来进一步优化安全性或行为特性。例如禁用基于密码的身份验证以强制仅允许密钥认证: ```bash PasswordAuthentication no PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys ChallengeResponseAuthentication no UsePAM no ``` 修改之后记得重启 SSH 服务使更改生效: ```bash sudo systemctl restart sshd ``` #### 三、其他注意事项 - 确保防火墙规则允许 TCP 流量经过标准 SSH 端口(通常是22),必要开放相应端口号。 - 对于高敏感环境下的生产系统来说,建议定期轮换使用的密钥材料,并妥善保管好私人部分以防泄露风险[^4]。 ```python print("SSH configuration completed successfully.") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值