在实际使用Linux系统过程中我们不可避免的需要远程登录Linux,这是因为未来大家使用Linux服务器的时候你所对应的那台Linux服务器不一定提供界面(服务器可能在外地)。本篇将会介绍远程登录Linux的方法。
文章目录
- 1. SSH介绍
- 2. Linux平台相互远程及文件传输
- 2.1 Linux平台相互远程
- 2.2 Linux平台间文件传输
- 3. Windows远程登录Linux及文件传输
- 3.1 Windows远程登录Linux
- 3.1.1 Xmanager配置
- 3.1.2 SecureCRT配置(后期实际使用的为此软件)
- 3.2 Windows下远程编码及文件传输
- 3.2.1 UltraEdit配置及远程编码
- 3.2.2 Windows与Linux之间的文件传输
1. SSH介绍
SSH为Secure Shell的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。
SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。常用于远程登录,以及用户之间进行资料拷贝
。
利用SSH协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是 UNIX 系统上的一个程序,后来又迅速扩展到其他操作平台。SSH 在正确使用时可弥补网络中的漏洞。SSH 客户端适用于多种平台。几乎所有 UNIX 平台—包括 HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。
使用SSH服务,需要安装相应的服务器和客户端。客户端和服务器的关系:如果,A机器想被B机器远程控制,那么,A机器需要安装SSH服务器,B机器需要安装SSH客户端。
2. Linux平台相互远程及文件传输
2.1 Linux平台相互远程
操作命令:ssh -l username hostip
- -l 选项, 是字母“l”,不是数字“1”
- username 被远程登录的用户名
- hostip 被远程登录的ip地址
注意:远程登录的两台机器必须要能ping通(平通)。
首先,查看需要被远程机器的ip:
远程登录(这里是用户 wencong ( A 机器 ) 远程登录 edu ( B 机器 ) ), 可以不用sudo :
SSH 告知用户,这个主机不能识别,这时键入"yes",SSH 就会将相关信息,写入" ~/.ssh/know_hosts" 中,再次访问,就不会有这些信息了。然后输入完口令,就可以登录到主机了。
接着,提示输入登陆密码:
登陆成功:
exit是退出远程登录命令
2.2 Linux平台间文件传输
SSH 提供了一些命令和shell用来登录远程服务器。在默认情况下,不允许用户拷贝文件,但还是提供了一个“scp”
命令。
- RemoteUserName 远程用户名
- RemoteHostIp 远程ip
- RemoteFile 远程文件,可带上路径
- FileName 拷贝到本地后的名字,可带上路径,不带路径拷贝到当前目录
本地文件复制到远程:
scp FileName RemoteUserName@RemoteHostIp:RemoteFile
scp FileName RemoteHostIp:RemoteFolder
scp FileName RemoteHostIp:RemoteFile
本地目录复制到远程:
scp -r FolderName RemoteUserName@RemoteHostIp:RemoteFolder
scp -r FolderName RemoteHostIp:RemoteFolder
远程文件复制到本地:
scp RemoteUserName@RemoteHostIp:RemoteFile FileName
scp RemoteHostIp:RemoteFolder FileName
scp RemoteHostIp:RemoteFile FileName
远程目录复制到本地:
scp -r RemoteUserName@RemoteHostIp:RemoteFolder FolderName
scp -r RemoteHostIp:RemoteFolder FolderName
拷贝远程的文件:
拷贝远程的文件可以任意修改其名字:
拷贝远程的文件可以指定存放路径:
3. Windows远程登录Linux及文件传输
3.1 Windows远程登录Linux
未来大家使用Linux服务器的时候你所对应的那台Linux服务器不一定提供界面(服务器可能在外地),所以需要使用Windows平台下远程登录Linux,用命令对这台服务器进行操作。
3.1.1 Xmanager配置
如果想在 Windows 平台下远程登录 Linux,这时候,Windows 需要安装 安装相应软件包。这里介绍是Xmanager。
Xmanager是一款小巧、便捷的浏览远端X窗口系统的工具。它包含Xshell、Xftp等软件:
- Xshell:是一个Windows平台下的SSH、TELNET和RLOGIN终端软件。它使得用户能轻松和安全地在Windows平台上访问Unix/Linux 主机。
- Xftp:是一个应用于 Windows 平台的 FTP 和 SFTP 文件传输程序。Xftp能安全地在Unix/Linux 和 Windows 平台之间传输文件。
配置Xshell,远程登录:前提是windows能够ping通Linux系统
连接成功之后就可以看到Linux下的一个终端。XSehll模拟了Linux下的一个终端,实现windows系统下在模拟终端中访问Linux系统。
Linux默认采用的编码格式是UTF-8,Windows默认采用的编码格式是ANSI(GB2312、GBK),所以需要设置一下相应编码:
3.1.2 SecureCRT配置(后期实际使用的为此软件)
在此之前我已经在windows上ping通了Linux。
SecureCRT模拟了Linux下的一个终端,实现windows系统下在模拟终端中访问Linux系统。
SecureCRT的配置过程与XShell基本一致。其安装过程省略。
打开软件,配置如下:
报错如下:猜测是由于我的Linux系统安装配置问题
参考I.MX6U开发板交叉编译Qt项目中2.2.2的解决方法进行设置。
再重新连接,输入密码
连接成功之后就可以看到Linux下的一个终端。
Linux默认采用的编码格式是UTF-8,Windows默认采用的编码格式是ANSI(GB2312、GBK),所以需要设置一下相应编码:此处看到已经是UTF-8的编码。
3.2 Windows下远程编码及文件传输
写代码编码的时候登录Linux的远程使用vim作为文本编辑器还是比较慢的。
可以使用UltraEdit远程软件登录Linux进行远程编码,远程连接好之后在其中写代码就可以直接放到Linux下。
3.2.1 UltraEdit配置及远程编码
SecureCRT模拟了Linux下的一个终端,实现windows系统下在模拟终端中访问Linux系统。UltraEdit是一个文本编辑器,配置过程如下:
(1)创建连接的Linux账户信息
其中的“Initial directory”指的是软件进入后的初始目录即软件连接到的Linux的目录
(2)与Linux目录进行连接
上面的配置可以看到在最后是我利用SecureCRT创建的一个“test.c”文件,右键选择“Open in UltraEdit”将其在UE中打开。
此处需要注意利用UE是不能创建文件的,因此一般我们会选择将UE与SecureCRT搭配使用,利用SecureCRT在对应目录:touch xxx或者vim xxx,然后在UE中写xxx的内容,写好之后ctrl+s保存
(3) 远程编码
在UE中编码完成后,ctrl+s保存
我们到SecureCRT下打开查看,其中内容确实已经修改。
编译运行一下:可以看到其内容实现了编译及运行
dawes@ubuntu:~/MyCoding$ gcc test.c -o uetest
dawes@ubuntu:~/MyCoding$ ls
test.c uetest
dawes@ubuntu:~/MyCoding$ ./uetest
UE TEST
dawes@ubuntu:~/MyCoding$
注意:需要保证.bashrc中配置的编码格式为utf-8(echo $LANG),同时也要保证在windows中编辑使用的是utf-8,否则可能有中文显示的问题。上面的编译和运行没有问题,应该设置是正确的。
3.2.2 Windows与Linux之间的文件传输
Windows与Linux之间的文件传输实现就很简单了,直接在下面界面中拖动文件实现即可。