目的:windows笔记本ssh远程控制Ubuntu服务器。不想带着主机返校,尤其是里面有必须要托运的水冷。所以准备远程控制主机,装了teamviewer和向日葵,发现图形界面在网不好的时候,控制延迟较高,于是想到用ssh。
目录
一、局域网访问
安装服务端openssh
sudo apt-get install openssh-server
简单命令
停止服务:sudo /etc/init.d/ssh stop
启动服务:sudo /etc/init.d/ssh start
重启服务:sudo /etc/init.d/ssh restart
在Ubuntu中使用ifconfig获得ip地址
在windows上,使用Xshell或Bitvise SSH等ssh软件,输入ip、端口(默认22)以及账号密码访问Ubuntu主机。测试后访问成功
参考:https://blog.csdn.net/cenfan327/article/details/43488271
二、远程访问
局域网虚拟ip是由路由器分配,进程访问公网需要通过路由器转发,路由器内建立有局域网ip和路由器外转端口的对照表,返回的信息通过这个对照表找到相应的主机和进程,连接结束后,端口会被释放。
局域网A的进程a是无法直接访问另一个局域网B的进程b,但可以访问公网,因此需要使用内网穿透,将局域网A的ip和进程a的端口映射为一个公网的ip和端口,这样进程b才可以访问进程a。
1、修改局域网主机为密钥登陆
参考:https://www.runoob.com/w3cnote/set-ssh-login-key.html
建立密钥对:
ssh-keygen
期间,包括设置密钥生成的路径,按Enter则生成在默认路径中;输入密钥锁码,改锁码用于打开私钥。最后生成两个文件id_rsa和id_rsa.pub,前者是私钥,后者是公钥。随后在服务器上安装公钥,并保证文件权限:
cd .ssh
cat id_rsa.pub >> authorized_keys
chmod 600 authorized_keys
chmod 700 ~/.ssh
2、windows修改为密钥登陆
打开Bitvise SSH Client,点击Login栏中的Client key manager,然后在弹出框中点击Import,将前文所生成的私钥,即id_rsa引入。并修改Initial method为publickey。
在局域网中测试密钥登陆成功后,在Linux服务器中编辑/etc/ssh/sshd_config 文件,禁用密码登陆。
PasswordAuthentication no
将该行前面的#删除,并修改yes为no
3、Linux服务器上安装内网穿透软件,并设置
这里我刚开始尝试了花生壳,但效果不太好。
找一款内网穿透软件,在Linux服务器上安装软件,并设置隧道映射关系。内网穿透软件会提供一个公网IP和端口,修改windows中的访问IP和端口即可。测试后,连接成功。
之后就可以在公网访问局域网中的服务器了。