如何在Linux系统中创建SSH连接?

在Linux中创建SSH密钥对,使用ssh-keygen命令,按提示操作即可。

Linux 创建 SSH

linux 创建ssh

SSH(Secure Shell)是一种加密网络协议,用于在不安全的网络上安全地操作远程计算机,本文将详细介绍如何在 Linux 系统上创建 SSH 连接,并配置相关参数。

安装 OpenSSH

我们需要在本地和远程计算机上安装 OpenSSH 软件包,大多数 Linux 发行版都默认包含 OpenSSH 客户端,但可能没有安装服务器端,以下是一些常见的安装命令:

Ubuntu/Debian

sudo apt update
sudo apt install openssh-server

CentOS/RHEL

sudo yum install openssh-server

Fedora

sudo dnf install openssh-server

启动和启用 SSH 服务

安装完成后,需要启动并设置 SSH 服务在系统启动时自动运行。

启动 SSH 服务

linux 创建ssh
sudo systemctl start sshd

设置开机自启

sudo systemctl enable sshd

配置 SSH 服务

SSH 的配置文件通常位于/etc/ssh/sshd_config,你可以使用文本编辑器如vimnano 来编辑这个文件。

sudo vim /etc/ssh/sshd_config

修改常用配置项

配置项 说明
Port 修改默认端口号(Port 2222)
ListenAddress 绑定地址(ListenAddress 0.0.0.0)
PermitRootLogin 是否允许 root 用户登录(建议设置为 no)
PasswordAuthentication 是否允许密码验证(可以设置为 no,强制使用密钥认证)
PubkeyAuthentication 是否允许公钥认证
AllowUsers 允许登录的用户(AllowUsers alice bob)
AllowGroups 允许登录的用户组(AllowGroups sshusers)

保存并关闭文件后,重新启动 SSH 服务使配置生效。

sudo systemctl restart sshd

生成 SSH 密钥对

为了提高安全性,推荐使用 SSH 密钥对进行认证,而不是密码,可以使用以下命令生成密钥对:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

执行上述命令后,会提示你输入文件保存路径和密码短语(passphrase),按回车即可使用默认值,生成的密钥对包括公钥和私钥,默认保存在~/.ssh/id_rsa~/.ssh/id_rsa.pub

配置公钥认证

将生成的公钥复制到远程服务器上的~/.ssh/authorized_keys 文件中,可以使用ssh-copy-id 命令简化这个过程:

linux 创建ssh
ssh-copy-id user@remote_host

如果远程主机的~/.ssh 目录不存在,你需要手动创建并设置正确的权限:

mkdir -p ~/.ssh
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

测试 SSH 连接

一切配置完成后,可以使用以下命令测试 SSH 连接:

ssh user@remote_host

首次连接时,会提示你是否信任该主机的指纹,输入yes 后按回车即可。

高级配置

使用 SSH 代理

SSH 代理可以使你在多个终端会话中复用一个身份验证,而不需要每次都输入密码或密钥短语,可以使用以下命令启动 SSH 代理:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

配置多重跳转(SSH 隧道)

有时你需要通过多个中间服务器才能到达目标服务器,这可以通过 SSH 隧道实现,通过bastion 主机跳转到target 主机:

ssh -J user@bastion ssh user@target

故障排除

无法连接到 SSH 服务

检查 SSH 服务状态:

sudo systemctl status sshd

确保防火墙允许 SSH 端口(默认是22):

sudo ufw allow 22/tcp

权限问题

确保~/.ssh 目录及其父目录的权限正确:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

FAQs

Q: 如何更改 SSH 默认端口?

A: 编辑/etc/ssh/sshd_config 文件,找到Port 配置项,将其改为所需的端口号(Port 2222),然后重启 SSH 服务:sudo systemctl restart sshd

Q: 如何禁用密码认证,只使用密钥认证?

A: 编辑/etc/ssh/sshd_config 文件,将PasswordAuthentication 设置为no,然后重启 SSH 服务:sudo systemctl restart sshd,确保你已经配置了公钥认证。

小伙伴们,上文介绍了“linux 创建ssh”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1334309.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
未希新媒体运营
上一篇 2024-11-19 23:15
下一篇 2024-11-19 23:16

相关推荐

  • 如何创建一个简单但功能强大的JavaScript分页组件?

    当然,以下是一个简单的JavaScript分页组件示例:,,“javascript,class Pagination {, constructor(items, itemsPerPage) {, this.items = items;, this.itemsPerPage = itemsPerPage;, this.currentPage = 1;, },, getTotalPages() {, return Math.ceil(this.items.length / this.itemsPerPage);, },, getCurrentPageItems() {, const start = (this.currentPage 1) * this.itemsPerPage;, const end = start + this.itemsPerPage;, return this.items.slice(start, end);, },, goToPage(pageNumber) {, if (pageNumber this.getTotalPages()) {, throw new Error(‘Invalid page number’);, }, this.currentPage = pageNumber;, },, nextPage() {, if (this.currentPage 1) {, this.currentPage–;, }, },},,// Example usage:,const items = Array.from({ length: 50 }, (_, i) =˃ Item ${i + 1});,const pagination = new Pagination(items, 10);,console.log(pagination.getCurrentPageItems()); // First 10 items,pagination.nextPage();,console.log(pagination.getCurrentPageItems()); // Next 10 items,“,,这个简单的分页组件允许你根据每页显示的项目数来分页,并提供方法来获取当前页的项目、跳转到指定页、下一页和上一页。

    2024-12-23
    05
  • MySQL 数据库中如何创建唯一索引?

    MySQL中,唯一索引用于确保表中某列或多列的值唯一。

    2024-12-23
    017
  • 如何在Linux系统上安装FastDFS?

    fastdfs linux安装步骤包括:下载源码,解压,编译,配置nginx,启动tracker和storage服务。

    2024-12-23
    024
  • DEB是什么格式?探索Linux下的Debian软件包

    DEB格式是Debian系统及其衍生发行版(如Ubuntu)使用的一种软件包格式,通过封装机制打包软件的所有必要文件和信息。

    2024-12-22
    041

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入