Linux系统下,如何用ssh实现本地连接访问远程主机,详细步骤说明

1.准备工作

确保你已经:

拥有两台可以相互访问的计算机(主机 A 和主机 B)。

在每台计算机上安装了 SSH 服务。对于大多数 Linux 发行版,可以使用以下命令安装:
sudo apt update
sudo apt install openssh-server

确保 SSH 服务正在运行:
sudo systemctl start ssh
sudo systemctl enable ssh

2. 确定主机名和 IP 地址

你需要知道每台主机的 IP 地址。可以通过以下命令获取:
hostname -I

3. 设置 SSH 密钥(可选)

为了避免每次连接时都输入密码,可以使用 SSH 密钥进行无密码登录:

生成 SSH 密钥

在主机 A 上,生成 SSH 密钥对:
ssh-keygen -t rsa -b 2048
然后按 Enter 接受默认路径,设置密码(可选)。

将公钥复制到主机 B

使用 ssh-copy-id 命令将公钥复制到主机 B:
ssh-copy-id -p [port] username@<IP地址>
例如: ssh-copy-id -p 2200 myremote@192.168.1.2

4. 通过 SSH 连接到主机 B

从主机 A 连接到主机 B:
ssh -p [port] username@<IP地址>
例如:(一般port默认为22)
ssh -p 2200 myremote@192.168.1.2

5./.ssh配置文件各个文件用处说明

一、authorized_ksys(主机B存主机A):

authorized_keys 是一个重要的文件,用于 SSH 身份验证。它存储了允许访问用户帐户的公钥。以下是关于 authorized_keys 的详细说明:

1. 文件位置

authorized_keys 文件通常位于用户的 .ssh 目录下,例如:
~/.ssh/authorized_keys

2. 文件内容

authorized_keys 文件的每一行都包含一个公钥,格式如下:
ssh-rsa AAAAB3... user@hostname
ssh-rsa: 指定密钥类型(如 RSA)。
AAAAB3...: 是公钥的实际内容。
user@hostname: 这是一个可选的注释,用于标识密钥的用途或来源。

3. 添加公钥

要将公钥添加到 authorized_keys 文件中,可以使用以下步骤:

生成 SSH 密钥对(如果尚未生成):

ssh-keygen -t rsa -b 2048
复制公钥到远程主机(可以使用 ssh-copy-id 命令):

ssh-copy-id username@remote_host
这将自动将你的公钥添加到远程主机的 ~/.ssh/authorized_keys 文件中。

手动添加公钥:

如果你想手动添加,可以执行以下步骤:

在本地机器上查看公钥内容:
cat ~/.ssh/id_rsa.pub
登录到远程主机,并打开 authorized_keys 文件:
ssh username@remote_host
nano ~/.ssh/authorized_keys
将公钥内容粘贴到文件中并保存。

4. 权限设置

确保 ~/.ssh 目录及其内容的权限正确,以确保 SSH 能正常工作:

目录权限应设置为 700:
chmod 700 ~/.ssh
authorized_keys 文件的权限应设置为 600:
chmod 600 ~/.ssh/authorized_keys

5. 安全性

确保不将私钥分享给他人,只有公钥可以公开。
定期检查 authorized_keys 文件,删除不再需要的公钥,以确保安全性。

6. 常见问题

权限问题: 如果 SSH 报错说“权限被拒绝”,请检查 authorized_keys 文件和 .ssh 目录的权限设置。
公钥未被识别: 确保公钥没有被误修改,并且确实添加到了正确的 authorized_keys 文件中。

总结

authorized_keys 文件在 SSH 访问控制中扮演着关键角色,确保它正确配置和安全存储,可以大大增强远程访问的安全性。

二、is_rsa/is_rsa.pub:

id_rsa 是 SSH 密钥对中的私钥文件,通常用于安全连接到远程主机。以下是有关 id_rsa 的一些详细信息:

1. 生成 SSH 密钥对

要生成 SSH 密钥对,使用以下命令:
ssh-keygen -t rsa -b 2048
-t rsa 指定密钥类型为 RSA。
-b 2048 指定密钥长度为 2048 位(推荐)。
在命令执行后,系统会提示你输入文件名(默认是 ~/.ssh/id_rsa)和密码(可选)。

2. 文件结构

生成的密钥对通常包括以下两个文件:

私钥 (id_rsa): 仅应存放在本地,不应与他人分享。它用于身份验证。
公钥 (id_rsa.pub): 可以分享给需要访问的远程主机,通常会被添加到目标主机的 ~/.ssh/authorized_keys 文件中。

3. 使用 SSH 私钥进行连接

在你有 id_rsa 和相应的公钥的情况下,可以使用以下命令通过 SSH 连接到远程主机:
ssh -i ~/.ssh/id_rsa username@remote_host
如果你已经将公钥添加到目标主机的 authorized_keys 文件中,可以直接运行:
ssh username@remote_host

4. 安全性

保管私钥: 确保你的 id_rsa 文件的权限正确,以防止未授权访问。可以使用以下命令设置权限:
chmod 600 ~/.ssh/id_rsa
使用密码保护: 在生成密钥对时,如果设置了密码保护,可以为私钥增加一层安全性。

5. 常见问题

权限问题: 如果 SSH 报错显示权限不正确,确保 ~/.ssh 目录和 id_rsa 文件的权限正确。

公钥未添加: 确保公钥 (id_rsa.pub) 已正确添加到目标主机的 ~/.ssh/authorized_keys 文件中。

总结

id_rsa 是 SSH 身份验证中重要的一部分,确保你妥善管理它并保持其安全。使用 SSH 密钥连接可以增强安全性,避免使用密码登录。

三、known_hosts

known_hosts 文件是 SSH 的一个重要组成部分,主要用于存储已知主机的公钥,以防止“中间人攻击”。以下是关于 known_hosts 文件的详细说明:

1. 文件位置

known_hosts 文件通常位于用户的 .ssh 目录下,例如:

~/.ssh/known_hosts

2. 文件内容

known_hosts 文件的每一行都包含一个已知主机的公钥,格式如下:
hostname,ip_address key_type key
hostname: 主机名或 IP 地址。
ip_address: 主机的 IP 地址(可选)。
key_type: 密钥类型(如 ssh-rsa, ssh-ed25519 等)。
key: 主机的公钥。
示例内容
example.com,192.0.2.1 ssh-rsa AAAAB3... user@hostname

3. 作用

安全性: known_hosts 文件帮助 SSH 客户端验证连接的主机的身份。如果连接的主机的公钥与 known_hosts 文件中存储的公钥不匹配,SSH 将发出警告,提示可能存在安全问题。

4. 添加主机

当你第一次通过 SSH 连接到一个新主机时,SSH 客户端会提示你是否信任这个主机:
The authenticity of host 'hostname (ip_address)' can't be established. Are you sure you want to continue connecting (yes/no)?
如果你选择“yes”,该主机的公钥会被添加到 known_hosts 文件中。

5. 手动编辑

如果需要手动添加或删除主机,可以直接编辑 known_hosts 文件:
nano ~/.ssh/known_hosts
删除不需要的行,或添加新的主机公钥。

6. 安全性注意事项

避免手动修改: 手动修改 known_hosts 文件时要小心,确保添加的公钥来自可信源。
警告信息: 如果 SSH 提示“REMOTE HOST IDENTIFICATION HAS CHANGED”,这表示主机的公钥已更改,可能存在安全风险。在这种情况下,需验证公钥的真实性,然后决定是否更新 known_hosts 文件。

7. 常见问题

权限问题: 确保 .ssh 目录及 known_hosts 文件的权限正确,通常 .ssh 目录应设置为 700,known_hosts 文件应设置为 644。
chmod 700 ~/.ssh
chmod 644 ~/.ssh/known_hosts
文件内容错误: 如果文件格式不正确,SSH 可能无法正确识别主机。确保每行都按照正确的格式书写。

总结

known_hosts 文件在确保 SSH 连接安全性中起着关键作用,妥善管理此文件可以有效防止潜在的安全问题。

四、known_hosts.bak

known_hosts.bak 通常是一个备份文件,用于存储原始 known_hosts 文件的副本。这种文件的存在通常是为了在修改或更新 known_hosts 文件时,能够恢复到之前的状态,以防万一。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值