ssh访问:被访问的远程端持有公钥pub,本地持有私钥rsa。本地申请连接–>远程发一个随机数据串–>本地用私钥加密发向远程–>远程用公钥解密数据后和原始数据对比–>对比通过后授予连接权限,不需要用户输入密码。

目的1:

Ubuntu虚拟机通过ssh访问gitlab服务器;

目的1的条件:
一、Ubuntu上需要:安装ssh、然后启动、查看ssh状态。

sudo apt-get install ssh
service ssh start
sudo apt-get install openssh-client
sudo apt-get install openssh-server
sudo /etc/init.d/ssh start
sudo /etc/init.d/ssh restart
#设置开机自启动
sudo systemctl enable ssh
#设置好后重启
reboot
#查看是否启动ssh
ps -e | grep ssh

二、访问gitlab服务器,需要先复制/home/username/.ssh/id_rsa.pub中的秘钥。添加SHH公钥到gitlab设置中。
(ssh-keygen指令+一路回车即可生成秘钥对)

ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 	##设置文件名,默认~/.ssh/id_rsa,可直接回车
Enter passphrase (empty for no passphrase): ##密码也可直接按回车键
Enter same passphrase again: 
Your identification has been saved in xx     .  
Your public key has been saved in xx .pub.
The key fingerprint is:
SHA256:xye+YzFfgIgJvs8MEZvzMbPMA1AE3qoTjFReecdYnw root@username
The key's randomart image is:
+---[RSA 1024]----+
|  .*+o           |
|..=.* .          |
|.=.E.B o . .     |
|* ..B B ... .    |
|o..  O =S + ..   |
| o  o *  ooo  .  |
|o    = .  .+ .   |
| .    +   o..    |
|         ...     |
+----[SHA256]-----+

/home/username/.ssh/id_rsa.pub中秘钥复制
/home/username/.ssh/id_rsa.pub中
粘贴添加到tiglab网站的SSH密钥。

三、IP地址必须能ping通,可能需要内网穿透,如果windows主机已经设置好ip,可共享给虚拟机即可。或者,Ubuntu下也安装一个内网穿透,加入同一个虚拟内网
NAT模式可共享主机IP

目的2:

Ubuntu虚拟机被Windows主机通过ssh连接访问,或windows下的VScode通过ssh连接虚拟机Ubuntu。

目的2的条件
一、同样需要开启ssh服务,同上第一条;并添加SHH公钥到被访问端(Ubuntu)。
在win端ssh-keygen指令生成秘钥对,复制公钥文件到Ubuntu的/home/username/.ssh/win_id_rsa.pub;
然后使用命令 cat win_id_rsa.pub >> authorized_keys 往 authorized_keys里添加秘钥。

二、打开/etc/ssh/sshd_config,在内部添加几个初始化配置并设置权限。

sudo vim /etc/ssh/sshd_config

文件内部以下几个选项可能被注释掉,清除注释开启yes

Host *
#   ForwardAgent yes
#   ForwardX11 no
#   ForwardX11Trusted yes
   PasswordAuthentication yes
#   HostbasedAuthentication no
#   GSSAPIAuthentication no
#   GSSAPIDelegateCredentials no
#   GSSAPIKeyExchange no
#   GSSAPITrustDNS no
#   BatchMode no
#   CheckHostIP yes
#   AddressFamily any
#   ConnectTimeout 0
#   StrictHostKeyChecking ask
#   IdentityFile ~/.ssh/id_rsa
#   IdentityFile ~/.ssh/id_dsa
#   IdentityFile ~/.ssh/id_ecdsa
#   IdentityFile ~/.ssh/id_ed25519
   Port 22
#   Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc
#   MACs hmac-md5,hmac-sha1,umac-64@openssh.com
#   EscapeChar ~
#   Tunnel no
#   TunnelDevice any:any
#   PermitLocalCommand no
#   VisualHostKey no
#   ProxyCommand ssh -q -W %h:%p gateway.example.com
#   RekeyLimit 1G 1h
    SendEnv LANG LC_*
    HashKnownHosts yes
    GSSAPIAuthentication yes

配置文件权限

cd /home/username/.ssh
chmod 700 ../
chmod 700 .
chmod 600 authorized_keys

三、修改Windows端 的ssh,config配置文件。
在C:\Users\username.ssh\config。或者直接在vscode中:

vscode中的ssh配置
Host ubuntu #远程主机
HostName 192.xxx.xxx.xxx #远程主机的IP
IdentityFile C:\Users\local_username\ .ssh\id_dsa #私有秘钥文件地址 注意这里是本地访问者系统(win)中的路径
User remote_username #远程主机的用户名(Ubuntu中的用户名)






·
·
·
补充:

虚拟机的IP和端口可以这样设置:
VMware中选择编辑->虚拟网络编辑器
更改设置->NAT设置
输入IP子网。添加端口22。 在这里插入图片描述
第一种查看方式虚拟机的IP和端口可以这样查看:终端输入ifconfig
ifconfig查看ip
第二种查看方式:设置->网络->有线设置->查看IP
设置->网络->有线设置->查看IP

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐