Linux(九) Linux的远程访问(Virtualbox 虚

2023-10-06  本文已影响0人  石志不渝

一、SSH及OpenSSH

在很多情况下,Linux都作为服务器使用;使用者通常采用远程访问,而非直接操作服务器的方式。而Linux的远程访问一般是通过SSH(secure shell)协议,SSH协议可以提供“加密通讯”、“身份验证”、“远程登录”及“文件传输”等能力;是一种基于命令行的远程控制协议。
SSH协议进行实现的软件,是OpenSSHOpenSSHUbuntu上的安装,可以使用命令:sudo apt install openssh-server -y

openssh安装

安装完成后,使用sudo systemctl status ssh检查SSH服务状态。

ssh服务状态

二、远程连接

当我们需要连接到一个Linux时,我们需要知道其IP地址,可供连接的端口号(port),用户名及密码。
默认情况下,ssh的端口号为22。当我们在Ubuntu上安装完成openssh-server后,就可以在Windows 11上使用ssh命令来连接Ubuntu了,其命令格式为:

ssh <username>@<hostname_or_ip>

2.1 通过用户名、密码远程连接 VirtualBox 虚拟机

我们只进行宿主机与VirtualBox虚拟机之间的远程连接,这里使用VirtualBox网络的Host-Only模式。

  1. 关闭虚拟机,打开虚拟机设置菜单,在网络选项卡中,选择网络2,选择启用网络连接,之后选择Host-Only连接方式。

    设置网络
  2. 确认后,开启虚拟机,使用ifconfig指令查看网络信息

    ubuntu的IP地址
  3. Windows 11上,使用ping命令测试IP地址是否可连接

    ping 192.168.56.101
    
    IP测试
  4. Windows 11上,使用ssh命令连接VirtualBox中的Ubuntu系统。我的用户名是ubuntu,虚拟机的IP地址是192.168.56.101。所以此处我使用的命令是

    ssh ubuntu@192.168.56.101
    
    远程连接
  5. 使用组合键Ctrl + D 或输入exit;退出远程连接。

    退出远程连接

2.2 远程文件传输

完成上面远程连接步骤后,我们依然可以基于SSH,在Windows 11Ubuntu之间进行文件传输。指令的格式是:

scp [要上传的文件] <username>@<host>:<上传到的目录> [要下载到的文件夹]

上传和下载的命令是非常相似的,如果是上传,则需要指定要上传的文件。如果下载,则需要在host:后面指定要下载的文件,指定要下载到的目录。比如:

  1. 要将Windows 11D:/cache.db上传到ubuntu/tmp目录下;依然如上面所说,我的用户名是ubuntu,虚拟机的IP地址是192.168.56.101。所以,我运行的命令是

    scp d:/cache.db ubuntu@192.168.56.101:/tmp
    
    上传

    ubuntu虚拟机里查看,可以看到上传的文件

    查看上传的文件

    由于文件夹权限问题,如果直接上传到正式文件夹里,有时会权限不足。上传到 /tmp 目录会更稳妥

  2. 要将ubuntu中的/home/ubuntu/new_sh.sh 文件下载到 windows 11d:/scp_download文件夹中,命令则是

    scp  ubuntu@192.168.56.101:/home/ubuntu/new_sh.sh d:/scp_download
    
    下载
  1. 配合匹配指令,可以实现批量的下载和上传,比如要把ubuntu的目录/home/ubuntu/下,所有以.sh结尾的文件都下载到Windows 11d:/scp_download中,则可以运行指令
    scp  ubuntu@192.168.56.101:/home/ubuntu/*.sh d:/scp_download
    
    批量下载

2.3 使用密钥进行远程连接

2.1中,我们使用用户名和密码进行了远程连接,这种连接方式,每次都需要手动输入密码,不仅麻烦,而且不利于某些自动执行脚本程序的无人化执行。我们可以采用密钥的方式进行远程连接,当配置完成后,后续无需输入密码,即可访问远程电脑。

  1. Windows 11中,生成ssh远程连接使用的密钥。在这里,我们使用一种非对称加密方式(rsa)生成密钥对

    ssh-keygen -t rsa -b 2048
    

    其中,-t 指定了加密算法为rsa;-b制定了密钥长度为2048。密钥默认保存在c:\users\<用户名>\.ssh\文件夹下,分为两个:公钥和私钥。公钥名称为id_rsa.pub

    生成密钥
  2. 公钥 上传到远程ubuntu系统,保存到~/.ssh/authorized_keys中,注意authorized_keys是文件名,而不是目录。
    Windows 11中执行指令,并输入ubuntu密码,将公钥上传到ubuntu/tmp文件夹

    scp C:\Users\xxx/.ssh/id_rsa.pub ubuntu@192.168.56.101:/tmp
    
    上传公钥

    ubuntu中,运行以下指令,将上传的公钥文件移动到指定目录的指令文件

    mv /tmp/id_rsa.pub /home/ubuntu/.ssh/authorized_keys
    
    移动文件 查看移动成功的文件
  3. 现在,可以在Windows 11中,通过密钥进行远程连接了,运行如下指令可直接连接上远程服务器

    ssh ubuntu@192.168.56.101
    
    密钥连接
  1. scp文件传输指令,也可以使用密钥,比如,再次运行前面提到的上传指令,已经不需要经过输入密码的过程了
    scp d:/cache.db ubuntu@192.168.56.101:/tmp
    
    密钥上传
上一篇 下一篇

猜你喜欢

热点阅读