Linux 配置ssh、scp、sftp免密登录

SSH(Secure Shell)是一种安全的远程登录协议,它使用客户端-服务器架构促进2个系统之间的安全通信,并允许用户远程登录服务器。在某些高可用环境下,服务器之间可能还需要配置免密互信,即基于密钥验证登录。

一、SSH简介

SSH协议会通过加密技术进行身份验证,并在传输层构建多个安全通道,提供安全的数据传输服务,常用基于SSH协议的工具有远程登录工具ssh,远程拷贝工具scp,安全文件传输工具sftp。

1.1 使用ssh登录

使用ssh可以使用加密连接登录到远程服务器,使用ssh user@host格式命令登录,输入密码后即登录成功(返回远程服务器的shell提示符):

ssh vincent@172.16.1.38

在这里插入图片描述

ssh还可以直接在远程服务器上运行命令而不登录,在ssh user@host后直接跟上需要执行的命令:

ssh vincent@172.16.1.38 ls -l

在这里插入图片描述

1.2 使用scp传输文件

scp使用加密的连接在计算机之间传输文件,可以将本地文件拷贝到远程服务器,或将远程文件拷贝到本地,命令格式为:

scp localfile user@host:remotefile
scp user@host:remotefile localfile

示例:将本地/root/1.txt拷贝到远程的/home/vincent目录下,并改名为2.txt:

scp /root/1.txt vincent@172.16.1.38:/home/vincent/2.txt

在这里插入图片描述

示例:将远程/home/vincent/2.txt文件拷贝到本地当前目录(.代表当前目录):

scp vincent@172.16.1.38:/home/vincent/2.txt .

在这里插入图片描述

1.3 使用sftp传输文件

sftp和普通的ftp协议类似,但是它使用了加密连接,更加安全,要连接到服务器使用sftp user@host格式的命名(输入密码后登录):

sftp vincent@172.16.1.38

在这里插入图片描述

sftp常用命令:

命令 功能
ls [directory] 列出远程目录的内容。如果没有提供目录,则使用当前目录
cd directory 将远程工作目录更改为directory
mkdir directory 创建远程目录
rmdir directory 删除远程目录
put localfile [remotefile] 将 localfile 传输到远程计算机
get remotefile [localfile] 从远程计算机传输 remotefile

二、使用基于密钥的身份验证(免密登录)

通过基于密钥的身份验证,可以让客户端连接服务器时不再输入密码。其原理是通过非对称加密算法进行身份认证,客户端生成密钥对后,将公钥传给远程服务器(私钥自己保留)。

2.1 生成密钥对

第一步通过ssh-keygen命令生成基于SSH协议版本2的RSA密钥对,遇到输入提示,保持默认一直回车即可:

ssh-keygen -t rsa

在这里插入图片描述

命令会在用户的$HOME/.ssh/下生成2个文件,其中id_rsa为私钥,id_rsa.pub为公钥:
在这里插入图片描述

2.2 将公钥复制到远程服务器

接下来使用ssh-copy-id user@host命令将公钥传输给服务器,如果是首次连接服务器会有类似如下提示,这是一个服务器指纹验证,用于验证服务器的真实性:

ssh-copy-id vincent@172.16.1.38

在这里插入图片描述

输入yes后,会再次提示输入要连接的用户密码:
在这里插入图片描述

输入密码后,会提示公钥添加成功,公钥的内容会保存在服务器的~/.ssh/autorized_keys文件中,如果该文件已存在,则会附加在文件尾部。当客户端连接到服务器时,服务器通过检查存储在此文件中的签名公钥来验证客户端的身份验证(不再提示输入密码)。
在这里插入图片描述

完成上述配置后,ssh,scp,sftp都不再需要输入密码就可以使用了:

ssh vincent@172.16.1.38

在这里插入图片描述

scp 1.txt vincent@172.16.1.38:/home/vincent

在这里插入图片描述

sftp vincent@172.16.1.38

在这里插入图片描述

相关推荐

  1. 配置服务器登录

    2024-03-14 16:16:07       37 阅读
  2. 服务器——配置登录

    2024-03-14 16:16:07       29 阅读
  3. hadoop配置登录

    2024-03-14 16:16:07       16 阅读
  4. linux登录

    2024-03-14 16:16:07       40 阅读
  5. Linux】服务器登陆

    2024-03-14 16:16:07       36 阅读
  6. 服务器直接配置登录

    2024-03-14 16:16:07       39 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-14 16:16:07       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-14 16:16:07       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-14 16:16:07       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-14 16:16:07       18 阅读

热门阅读

  1. 如何将服务器数据迁移到另一台服务器?

    2024-03-14 16:16:07       19 阅读
  2. ECMAScript 语法

    2024-03-14 16:16:07       22 阅读
  3. 安装antv

    2024-03-14 16:16:07       17 阅读
  4. C#处理文件

    2024-03-14 16:16:07       18 阅读
  5. el-menu + el-badge 菜单加红点标识el-badge

    2024-03-14 16:16:07       22 阅读
  6. 精读《寻找框架设计的平衡点》

    2024-03-14 16:16:07       20 阅读
  7. SpringBoot有哪些优缺点呢

    2024-03-14 16:16:07       18 阅读
  8. Compound Words(UVA 10391)

    2024-03-14 16:16:07       22 阅读
  9. ARM 汇编指令:(六) B 跳转指令

    2024-03-14 16:16:07       23 阅读
  10. Rust 的 Arc<Mutex<T>> 的用法示例源代码

    2024-03-14 16:16:07       23 阅读
  11. PHP使用 enqueue/amqp-lib拓展实现rabbitmq任务处理

    2024-03-14 16:16:07       19 阅读