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