跨平台远程登录(SSH,TeamViewer)


TeamViewer

TeamViewer是最好用的图形界面式的远程控制软件之一,支持Linux,Windows和手机端等多个平台。同时,TeamViewer也支持文件远程传输。
安装个人版是免费的,使用简单。

1、使用ID远程控制

这是最简单的方式,直接输入ID即可远程控制和文件传输:

也可以在手机端对电脑进行远程控制,同样只要输入ID即可:

2、使用TeamViewer帐户管理远程

使用TeamViewer帐户的好处就进可以管理要远程控制的设备,而且用记ID。比如,我们要用手机对一台Window电脑和一Linux电脑时行控制,只要把两台电脑设备添加到我们的TV帐户中即可,然后登录帐户时可以选择远程控制那一台设备,如下图,可以选择两台要控制的设备

两种方式都很简单,这里就不再详细说明了。

3、Ubuntu16.04安装TeamViewer

x64的TeamViewer不支持Ubuntu16.04,安装x86的即可:

sudo dpkg -i teamviewer.deb
sudo apt-get install -f

如果不想要TeamViewer开机自启:

teamviewer daemon disable
# 切换root用户运行	


SSH

SSH是用终端命令行进行远程登录的,没有图形界面,相对来说,更适合对服务器进行远程登录和控制。
这里以使用手机远程登录到Ubuntu为例,来说明SSH的使用方法。
这里值得注意的是:ssh登录时,需要登录端和被登录端在同一局域网中,或者被登录端设置动态域名解析或端口映射,相当于将自己电脑建成一个可被外网访问的服务器;而TeamViewer就没有什么要求,只要能安装TeamViewer软件即可。

1、手机端设置

这里手机使用安卓为例,首先下载Termux软件,安卓上个人认为最好用的Linux模拟终端,使用Termux可以安装ssh,然后进行远程登录(同样,顺便提下,Termux也可安装ftp来登录ftp服务器)。
当然,ConnectBot也是一个简单易用ssh登录客户端。
除上上面两个软件外,还推荐使用“黑客键盘”软件,方便各种输入,如下图所示:

按Fn后还有第层按钮。
下面分别说明两个ssh登录软件。

  • 使用Termux
    首先在手机的应用商店中下载安装Termux,或者直接百度Termux下载。安装完后在Termux运行以下命令:
apt update
    # 同步软件列表,一定要先运行这个命令,不然后安装软件时,会提示找不到

apt install openssh
    # 安装ssh客户端,之后就可以使ssh等命令
    # 顺便说下:可以使用apt install,不就可以安装好多软件,比如python,gcc什么的,可以自己尝试了,Termux有不少软件。
  • 使用ConnectBot
    ConnectBot使用更简单,安装后即可使用,如下图,输入”用户名@ip:端口“即可连接:

2、ubuntu端设置

先安装ssh,然后配置ssh

sudo apt-get install ssh
sudo vim /etc/ssh/sshd_config

ssh基本的配置内容如下:

Port 22
# ssh登录端口设置
PermitRootLogin yes  
# 使用root用户登录
RSAAuthentication yes                                                   
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
# 使用RSA密钥,实现免密登录,公钥存放于~/.ssh/authorized_keys文件

3、 远程登录及远程文件传输

  • ssh用于远程登录
ssh -p port username@ip
# port为SSH端口,username为ubunut的用户名,ip为ubuntu的ip
# 按回车后,输入密码即可 

登录后Termux界面变成了Ubuntu终端的界面,在Termux就可以使用终端对ubuntu进行完全控制,当然,前提有root权限。

  • scp用于远程文件传输
    注意,直接在Termux使用scp命令,不是用ssh登录后再使用。
    Termux打开后的默认目录是: /data/data/com.termux/files/home
    这里的home就相当于linux中的 /home 目录。
scp  -P 22 username@ip:~/testfile /sdcard/
# 将ubuntu的 ~/testfile复制到本地的 /sdcard/文件夹下
# scp使用ssh连接,22为端口

scp -r -P 22 username@ip:~/testf /sdcard/
# 将ubuntu的 ~/testf文件夹复制到本地的 /sdcard/文件夹下

scp -P 22 /sdcard/testfile username@ip:~/
scp -r -P 22 /sdcard/testf username@ip:~/
# 复制本地 /sdcard 下的文件或文件夹到ubuntu的 ~/

4、实现免密登录

免密登录输入ssh密码后,不用再输入密码。免密登录需要要创建RSA密钥(公钥和私钥),手机端的私钥和ubuntu的公钥匹配才可以登录,下面通过纯手机端的Termux实现免密登录。
基本步骤如下:

  • (1)在手机端生成RSA密钥对,即私钥id_rsa和公钥id_rsa.pub
  • (2)将公钥id_rsa.pub远程传输到ubuntu的 ~/.ssh/下。(因为公钥要远程传输,而私钥只需要放于手机端,不需要远程传输,为了防止私钥泄露,所以在手机端进行密钥创建)
  • (3)将公钥id_rsa.pub添加到援权密钥authorized_keys中
  • (4)至此,即可实现免密登录

基本的命令如下(Termux):

ssh-keygen -t rsa
# 连续按3个回车,在 /data/data/com.termux/files/home/.ssh下生成了密钥对

scp /data/data/com.termux/files/home/.ssh/id_rsa.pub username@ip:~/.ssh/
# 复制公钥id_rsa.pub到ubuntu中

ssh -p xx username@ip
# 远程登录到ubuntu中,此进还需要输入密码

cd ~/.ssh
# 没有.ssh文件夹,则自己建立

cat id_rsa.pub >> authorized_keys
# 添加到援权密钥,没有authorized_keys,则自己建立即可

chmod 600 authorized_keys
# authorized_keys权限要为600

rm id_rsa.pub
# 添加援权密钥后,可以删除id_rsa.pub
# 至此,使用ssh登录时,会将手机端的私钥和ubuntu中的援权密钥进行匹配,匹配成功,则可以实现免密登录

ssh-copy-id -i id_rsa.pub username@ip
# 上述的上传公钥也可以使用ssh-copy-id命令完成
# 注意:执行命令,id_rsa和id_rsa.pub需要同时存在

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 [ yehuohan@gmail.com ]

文章标题:跨平台远程登录(SSH,TeamViewer)

本文作者:Y

发布时间:2017-06-09, 17:50:02

最后更新:2020-07-16, 16:37:55

原始链接:http://yehuohan.github.io/2017/06/09/%E6%9D%82%E8%AE%B0/%E8%B7%A8%E5%B9%B3%E5%8F%B0%E8%BF%9C%E7%A8%8B%E7%99%BB%E5%BD%95/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。