ssh免密登陆

ssh密码登陆

ssh连接常用命令

ssh username@address
username表示远程登陆的用户
address表示远程登陆的主机
登陆前确保地址可达和sshd服务是否开启

ssh服务端的配置文件目录

[root@localhost ~]# cd /etc/ssh
[root@localhost ssh]# ls
moduli ssh_config.d ssh_host_ecdsa_key ssh_host_ed25519_key ssh_host_rsa_key
ssh_config sshd_config ssh_host_ecdsa_key.pub ssh_host_ed25519_key.pub ssh_host_rsa_key.pub

默认ssh服务器在Linux系统,有3对非对称加密密钥
第一对
ssh_host_ecdsa_key
ssh_host_ecdsa_key.pub

第二对
ssh_host_ed25519_key
ssh_host_ed25519_key.pub

第三对
ssh_host_rsa_key
ssh_host_rsa_key.pub

sshd_config是ssh服务端的配置文件
ssh_config是ssh客户端的配置文件

ssh配置文件里参数

文件/etc/ssh/sshd_config

#Port 22 ssh访问端口号,可以修改
#AddressFamily any
#ListenAddress 0.0.0.0 ssh监听的地址,0.0.0.0表示监听所有的ipv4地址的22端口
#ListenAddress ::

PermitRootLogin yes 是yes就表示允许root通过ssh登陆,no就拒绝root通过ssh远程登陆

PubkeyAuthentication yes 是yes就表示支持基于公钥的认证

AuthorizedKeysFile .ssh/authorized_keys 基于公钥开启后,客户端公钥存放位置

PasswordAuthentication yes 如果yes支持密码认证

修改完端口ssh连接加p参数指定端口

/var/log/secure记录了ssh登陆的日志
修改ssh配置文件要重启sshd服务

免密登陆

确定配置文件/etc/ssh/sshd_config是否支持基于公钥的认证
即PubkeyAuthentication yes

好处:基于公钥认证方式,防止黑客暴力破解

1.将客户端的公钥传输到服务端
2.客户端访问服务端时采用基于公钥的认证方式

操作

客户端ip:10.0.0.135
服务端ip:10.0.0.132

1.检查客户端和服务端sshd服务是否开启

systemctl status sshd
在这里插入图片描述

2.在客户端通过ssh-keygen生成非对称加密密钥

ssh-keygen
-t指定算法

[root@localhost ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory ‘/root/.ssh’. #存放默认位置
Enter passphrase (empty for no passphrase): #私钥密码,可以为空
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:klRillPc48msPw1tZNuYqe1G32bHNS5TgaUhKPQ361o root@localhost.localdomain #指纹
The key’s randomart image is:
±–[RSA 2048]----+
| ==o… |
| oo+o.o. . . |
| …= =. = |
| . . * =o . |
| o S. = * .|
| … o O .o.|
| . E .ooo|
| * +o…*|
| . +. oo.|
±—[SHA256]-----+
在这里插入图片描述

[root@localhost ~]# cd .ssh
[root@localhost .ssh]# ls
id_rsa id_rsa.pub #生成的公钥私钥

3.使用ssh-copy-id上传到服务端

p指定端口 默认22
i认证文件
ssh-copy-id root@10.0.0.132
这里要输入服务端的用户密码
在这里插入图片描述

只有将公钥传到具体的家目录下才可以实现基于公钥的认证方式
传送到服务端
AuthorizedKeysFile .ssh/authorized_keys 基于公钥开启后,客户端公钥存放位置
在这里插入图片描述

4.进行ssh连接

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在 VS Code 中使用 SSH 免密登录,你可以按照以下步骤进行设置: 1. 生成 SSH 密钥对:在终端中使用 `ssh-keygen` 命令生成 SSH 密钥对。你可以选择使用默认的密钥保存路径和文件名,或者自定义路径和文件名。 2. 将公钥添加到远程服务器:使用 `ssh-copy-id` 命令将生成的公钥添加到你希望无密码登录的远程服务器。例如,`ssh-copy-id user@hostname`,其中 `user` 是远程服务器上的用户名,`hostname` 是远程服务器的主机名或 IP 地址。 3. 在 VS Code 中安装 SSH 扩展:打开 VS Code,点击左侧的扩展图标,搜索并安装 "Remote - SSH" 扩展。 4. 连接到远程服务器:点击左下角的 "Remote Explorer" 图标,选择 "SSH Targets",然后点击 "+" 添加一个新的 SSH 目标。 5. 配置 SSH 目标:在弹出的输入框中,输入格式为 `[user@]hostname[:port]` 的目标,其中 `user` 是远程服务器上的用户名,`hostname` 是远程服务器的主机名或 IP 地址,`port` 是可选的远程服务器 SSH 端口号。例如,`user@hostname` 或 `user@hostname:port`。然后,选择之前生成的私钥文件。 6. 连接到远程服务器:点击刚刚创建的 SSH 目标,VS Code 会自动连接到远程服务器。你可能需要输入远程服务器的密码一次,之后就可以无密码登录了。 这样,你就可以在 VS Code 中无需每次输入密码就能通过 SSH 连接到远程服务器了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值