1-远程连接ssh

本文简要介绍一下Linux的登录操作和远程连接SSH操作。

登录Linux

GUI

默认我们通过GUI登录Linux:

使用GUI登录的终端为pts/*

zeroize@client:~/Desktop$ tty
/dev/pts/0

终端登录

Linux允许同时多个用户登录,这里使用Ctrl + Alt + F3切换到tty3黑窗口终端进行登录操作:

如果想切回GUI模式,用快捷键Ctrl + Alt + F1切换即可。

远程连接Linux

SSH协议的定义:

Secure Shell (SSH) 协议 | Cloudflare

我们在这里使用的是OpenSSH开源软件/服务。服务也是一种进程,服务很多都被设置为开机自启,不属于任何终端,默默的为主机服务。

在Linux主机安装OpenSSH

首先要在Linux主机上安装openssh-server,它用于提供SSH的服务端:

# 更新软件源
sudo apt-get update
# 安装openssh-server
sudo apt-get install openssh-server

ssh服务默认就是开机自启,所以在安装好ssh服务后,我们直接就可以进行远程链接了。

Linux使用ssh

在Linux中,可以使用ssh命令去远程连接其他Linux主机:

ssh user@hostname

其中,user是用户名,hostname是目标IP地址或域名,默认连接的端口号为22。如果想登录某一特定端口,还要在该命令后追加-p 端口号

例如,ssh localhost就是自己远程连接自己(虽然没什么用)。

使用配置文件

为了免于ssh登录时输入一堆东西,可以使用配置文件简化登录操作。

~/.ssh/中添加config文件,按如下格式输入相关信息即可:

Host <HostName的别名>
    HostName <IP地址或域名>
    User <用户名>
    Port <端口号(没写默认为22)>
...

配置完毕后,就可以直接用ssh <Host名>来进行远程登录了。

配置免密登录

如果你还没有ssh密钥,可以用ssh-keygen命令去创建一个密钥。然后使用ssh-copy-id <Host名>将自己的公钥传给Host服务器,以后就能免密登录了。

Windows使用ssh

windows上的远程链接工具都自带ssh协议的客户端。常见的链接工具有Xshell,SecureCRT,MobaXterm。

配置VsCode

不过我们使用的是很方便的vscode。首先打开VsCode,安装SSH插件。然后在搜索栏中点击“显示并运行命令”,键入”remote-ssh”,进行下列操作:

  • 打开配置文件,输入Linux的相关信息:

    Host <HostName的别名>
      HostName <Linux中输入ip addr, 最下面ip>
      User <要登录的用户名>
      Port 22
  • 进行远程连接,第一次连接需要输入密码。

接下来就能对远程连接的Linux主机进行各种操作了。

配置免密登录

由于Windows中没有Linux那样的ssh-copy-id操作,我们得手动将公钥部分放到信任的Linux服务器的authorized_keys中。

公钥部分位于C:User/用户名/.ssh/id_rsa.pub中,如果没有公钥就打开cmd输入ssh-keygen -t rsa创建一个,然后将其内容复制到Linux服务器的~/.ssh/authorized_keys中,如果没有authorized_keys文件就创建一个。

配置好后就能免密登录了。

参考资料

  • Linux系统编程 - 飘零的落花
  • Linux基础课 - Acwing