Ubuntu的ssh基本命令与配置

chenshan Lv1

SSH简介

Secure Shell(SSH) 是由 IETF(The Internet Engineering Task Force) 制定的建立在应用层基础上的安全网络协议。它在本地和远程计算机之间提供安全、加密的通信通道,使其成为远程管理、文件传输和隧道的绝佳工具。

SSH之所以能够保证安全,原因在于它采用了非对称加密技术(RSA)加密了所有传输的数据。它提供了两种级别的登录方式。

  • 第一种级别(基于口令的安全验证):只要你知道自己帐号和密码,就可以登录到远程主机。

  • 第二种级别(基于密钥的安全验证):你必须为自己创建一对密钥,并把公钥放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密钥进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公钥,然后把它和你发送过来的公钥进行比较。如果两个密钥一致,服务器就用公钥加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私钥在本地解密再把它发送给服务器完成登录。与第一种级别相比,第二种级别不仅加密所有传输的数据,也不需要在网络上传送口令,因此安全性更高,可以有效防止中间人攻击。

安装SSH服务器

SSH分为客户端 openssh-client 和服务器 openssh-server, 如果只是想远程登陆别的机器只需要安装客户端(Ubuntu默认安装了客户端),如果要开放本机的SSH服务就需要安装服务器。安装步骤如下:

  1. 更新软件包列表

    1
    sudo apt update
  2. 安装ssh服务器:

    1
    sudo apt install openssh-server
  3. 安装完成后,SSH服务器将自动启动。您可以使用以下命令检查其状态,如果服务器状态为”active”,则表示SSH服务器已成功安装并正在运行。

    1
    sudo service ssh status

连接到远程主机

第一种登录方式:密码登录

  1. 输入远程服务器的IP地址和端口号(可选),默认使用22端口。如果需要调用图形界面程序可以使用 -X 选项。

    1
    ssh username@your_server_ip_address (-p port_number)

    例如,要以用户 john 的身份连接到 IP 地址为 192.168.100.26 的远程主机,您可以使用以下命令

远程主机的ip地址可以通过ifconfig命令查询

  1. 输入密码进行身份验证

如果有频繁登录某一远程主机的需求,每次敲击这么一长串命令实在繁琐,可以给命令写个别名

1
sudo echo "alias yourname='ssh username@your_server_ip_address'" >> ~/.bashrc && source ~/.bashrc

这样下次就只需要输入yourname(可自定义)就可以了

第二种登录方式:公私钥登录

  1. 在本地机器上生成公钥私钥对

    1
    ssh-keygen
  2. 将公钥复制到远程机器中,将key写到远程机器的 ~/ .ssh/authorized_keys文件中

    1
    ssh-copy-id username@your_server_ip_address

​ 输入密码后,后续使用ssh username@your_server_ip_address即可登录,无需输入密码。同样如果觉得天天输这个命令麻烦的话可以写个别名。

进阶应用

无中断运行程序

Linux关闭ssh(关闭终端等)后运行的程序或者服务会自动停止,如果需要在关闭终端后依旧执行,可以使用nohup指令

1
nohup python3 a.python

跨机拷贝文件

使用scp命令可以在各个主机之间进行复制或者文件传输。scp是secure copy的简写,它在后台使用ssh连接来进行文件的传输。

  • scp的基础语法如下

    1
    scp source_file_path username@host:destination_file_path
  • 从本地传到远程主机(从远程传到本地只需倒过来即可)

    1
    scp ~/my_local_file user@your_server_ip_address:/remote/directory

  • 标题: Ubuntu的ssh基本命令与配置
  • 作者: chenshan
  • 创建于 : 2024-08-23 19:06:32
  • 更新于 : 2024-12-05 21:54:31
  • 链接: https://chenshan.link/2024/08/23/Ubuntu中ssh基本命令与配置/
  • 版权声明: 版权所有 © chenshan,禁止转载。
评论