远程登录与文件传输指令——ssh与scp
远程登录指令 ssh
ssh 是一个用于登录远程主机并在远程主机上执行命令的程序。ssh 设计的本意在于在一个不确定的网络环境下为两个互不信任的主机提供加密通信功能。在 Linux 桌面版本上,一般内置有 ssh 命令供用户直接使用( 提供的是 ssh 客户端 )。在Windows环境下,用户需要下载独立的提供 ssh 功能的软件(如 Putty )才能使用类似功能。
ssh常用参数:
ssh [Options] [user@]hostname [command]
常用参数:
- // 强制 ssh 使用第一版协议( protocol version 1),默认使用的是第二版协议
- // 强制 ssh 使用第二版协议( protocol version 2)
- // 只使用IPv4地址
- // 只使用IPv6地址
-p xxx // 指定远程主机上使用的端口号( 默认使用的端口为 22 )
ssh常用用法
(1)远程登录
ssh hostname //其中 hostname 可以为IP地址或域名。登录时会要求提供用户名和密码
ssh user@hostname //同上,如 ssh yh@1.2.3.4 .在指定用户名后,登录时仅提供密码即可
(2)远程执行命令
ssh hostname command // 远程执行 command 命令并返回显示结果,而不是显示登录窗口,如 ssh 1.2.3.4 ls -l ,在验证用户名和密码后,即会返回在远程主机上执行 ls -l 命令的结果。
其他
默认情况下,Linux 桌面版本中仅安装了 ssh 客户端,而没有安装 ssh 服务端。即主机仅能连接远程服务端,而不能处理其他主机的连接请求。用户可通过如下命令安装 ssh 服务端。
sudo apt-get install openssh-server //安装 ssh 服务端
sudo apt-get install openssh-client //安装 ssh 客户端
安装成功后,即可通过 sshd 命令运行服务器端程序。sshd 默认的配置文件位于 /etc/ssh/sshd_config ,用户可以通过修改其中的内容修改服务器端的默认选项( 通过 man sshd_config 了解具体信息),常用的修改包括修改 ssh 服务使用的默认端口( 默认为 22 )。
在使用 ssh 服务登录至远程主机后,仅能通过一个终端界面进行操作。用户可借助一些终端复用软件如 tmux / screen 命令等进行终端复用,可以参考笔者的博文screen 命令基本操作教程和终端复用工具 tmux 基本操作教程。
参考资料
(1)ssh manpage,通过 man ssh 查看
(2)更多 ssh 功能的使用,可以参考 Linux 中国:Linux 下 SSH 命令实例指南
(3)Ubuntu Documentation OpenSSH Server
(4)更多 ssh 参数解释,可参考 ssh
文件传输指令scp
scp( secure copy )是一个远程文件拷贝程序,它允许主机之间通过网络实现文件的拷贝。scp 命令使用 ssh 进行数据传输,并提供与 ssh 相同的安全性保护,故而使用时的验证与 ssh 命令类似。Linux 和 Mac 提供内置的 scp 工具,而 Windows 环境下则需要借助诸如 pscp 等软件实现该功能。
scp常用参数
scp [Options] source dest
-P //指定进行数据传输使用的端口号,P为大写
-r //递归复制整个目录
-q //安静模式,不显示额外信息
-v //详细模式,输出 scp 和 ssh 的详细运行过程信息,可用于调试
scp常用用法
(1)复制本机文件至远端主机
scp local_path username@host_address:remote_path //复制本地文件至远端主机
如 scp ~/test.txt yh@127.0.0.1:/home/yh ,将本地当前用户目录下的test.txt文件复制至远程用户 yh 的主目录下。其中,可以不指定远端用户名(则在验证时输入用户名),远端文件路径既可以为目录路径,也可为最终的文件路径,表示复制后的文件名。
(2)复制远端主机文件至本地主机
scp username@host_address:remote_path local_path //复制远端主机文件至本地
如 scp yh@127.0.0.1:~/test.txt /home/yh ,将远端用户 yh 的主目录下的 test.txt 文件复制至本地用户 yh 的主目录中。
以上命令中,若指定了用户名,则后续仅需输入密码进行验证,而若未指定用户名,则后续需要输入用户名和密码进行验证。用户可以通过 -P 参数指定使用特定的端口,使用 -r 命令对某个目录进行递归的复制操作。
其他
Windows环境下,需要安装如 pscp 等软件使用 scp 类似的功能。可在这里下载 pscp.exe 文件。
用户可通过以下方式运行该文件:
(1) 将 pscp.exe 所在目录路径加入系统环境变量 Path 中,则可在任意命令行路径下通过 pscp 命令执行 pscp.exe 程序;
(2) 切换命令行路径至 pscp.exe 所在的目录( 命令行下的 cd 命令 ,或直接在 pscp.exe 所在文件目录界面中,按住 Shift ,右键 -> 在此打开命令行窗口 ),则可在命令行中通过 pscp 或 ./pscp.exe 执行 pscp.exe 程序;
Windows环境下 pscp 程序提供与 Linux 环境中 scp 命令相似的功能。
pscp local_path user@host_ip:dest_path //复制本地文件至远端主机
pscp user@host_ip:file_path local_path //复制远端主机文件至本地主机
值得注意的是,Windows环境下的文件路径的格式为 F:\Users\yh\Desktop,而对应的 Linux 环境下的路径格式为 /home/yh/ ,两者路径的分割符是不一样的。
参考资料
(1) scp manpage,通过 man scp 查看
(2)Linux scp 命令
另注:以上命令是以纯命令行的方式进行本地主机与远端服务器之间的交互,实际想要更加方便快捷的与服务器之间进行文件传输,可以开启远程主机的 ftp server 服务,同时在本地主机上安装诸如 FileZilla 等 ftp 客户端软件,通过这些客户端软件去连接远程服务器,即可通过图形界面的方式较为便捷的使用本地主机与远端服务器之间的文件交互功能。
远程登录与文件传输指令——ssh与scp的更多相关文章
- Windows、Linux -- 远程登录、文件传输、文件共享
Linux <---> Linux 远程登录: ssh服务 ssh root@10.20.62.124 文件传输: scp服务 上传 scp /home/xxx.txt root@1 ...
- Linux之远程登录和文件传输
一---导读 在实际开发过程中,程序员和Linux系统是远程的,并且可能有多个程序员一同在同一个linux系统上工作,那么这个时候就需要我们远程登录linux系统 二---软件介绍 xshell 和 ...
- windows远程连接老是出问题?如何使用Radmin进行云服务器的远程连接与文件传输?
(windows远程连接老是出错怎么办?云服务器远程连接一直有问题怎么办?如何用对多台windows电脑远程连接怎么办? 最近发现win的mstsc不好用,偶然想起Radmin这款老牌软件,利用Rad ...
- ssh实现免密码登录和文件传输
一般的用户名密码认证不安全,很容易被暴力破解,还不方便:而大多数人都是选择使用 SSH 密钥认证,不仅安全还不用每次输密码 ssh密钥对 # 使用 ssh-keygen 生成非对称密钥,一路回车即可 ...
- Windows上安装配置SSH教程(6)——综合应用:在Windows上实现SSH远程登陆与文件传输
----------------- 声明:本教程现已经弃用.由于客户端同时安装Cygwin和OpenSSH for Windows会出现问题(Cygwin的shell下无法使用ssh命令),建议直接在 ...
- 推荐使用集串口,SSH远程登录和FTP传输三合一工具MobaXterm
在以前的资料里,串口和SSH远程登使用SecureCRT,window与ubuntu数据传输使用filezilla,窗口切换来切换去,麻烦也眼花缭乱.有没有一个工具搞定串口.SSH和FTP?有!它就是 ...
- Windows上安装配置SSH教程(8)——综合应用:在Windows上使用手动方式实现SSH远程登陆与文件传输
服务器端操作系统:Windows XP 客户端操作系统:Windows10 安装与配置顺序 1.服务端安装OpenSSH 2.服务端配置OpenSSH 3.客户端安装OpenSSH 4.客户端安装Wi ...
- 远程文件传输工具sftp、scp、rsync
一.scp 格式 scp [options] [user@]host : /sourcefile /destpathscp [options] /sourcefile [user@]host:/des ...
- Windows上安装配置SSH教程(9)——综合应用:在Windows上使用脚本实现SSH远程登陆与文件传输
服务器端操作系统:Windows XP 客户端操作系统:Windows10 安装与配置顺序 1.服务端安装OpenSSH 2.服务端配置OpenSSH 3.客户端安装Cygwin 4.客户端安装Tcl ...
随机推荐
- IOS Masonry自动布局
之前项目用Frame布局,这个项目登录用了VFL,后来觉得用Masonry,前天布局TableViewCell时用了下 ,觉得还不错. #import "Masonry.h" #i ...
- Spring中使用JMS
JMS为了Java开发人员与消息代理(message broker)交互和收发消息提供了一套标准API.而且,由于每个message broker都支持JMS,所以我们就不需要学习额外的消息API了. ...
- Mac上微信小程序官方开发工具卡死的问题
Mac上微信小程序官方开发工具打开后卡死,无法操作,也关不掉,解决方案: 三步: 1.在应用中删除“微信web开发者工具” 2.删除一下几个配置和缓存文件: 1.-/Library/Applicati ...
- PHP项目学习2
通过<PHP项目学习1>基本上可以了解项目的大致结构.内容,现在直接从代码入手,开始coding吧. 现在部署环境中建立一个myonline的文件夹,便于放置我们的项目
- unity 和 iOS/Android 信息交互(方法调用)
参考文章均来源于[大神雨松momo]的文章. unity -> iOS // unity 程序 usingSystem.Runtime.InteropServices; usingUnityEn ...
- LINQ-Where子句与select子句
1.Where子句 where子句的作用就是筛选元素,除了开始喝结束位置,where子句几乎可以出现在LINQ表达式的任意位置.一个LINQ表达式中可以有Where子句,也可以没有:可以有一个,可以有 ...
- [PHP] PHP数组的实现哈希表(HashTable)结构
PHP中使用最为频繁的数据类型非字符串和数组莫属,使用哈希表实现的PHP数组.1.数据结构:保存哈希表容器,保存数据的容器2.哈希函数实现:需要尽可能的将不同的key映射到不同的槽(bucket)中, ...
- XML文档的解析—dom4j
XML为可扩展标记语言,它主要是用来保存数据,做配置文件,数据传输载体等.其实就是一个后缀名为.xml的文件. XML命名规则 名称可以含字母.数字以及其他的字符 名称不能以数字或者标点符号开始 名称 ...
- Asp.Net实现在线网站安装(上)
在很多年前,笔者在使用z-blog搭建个人部落格的时候,最大的感受就是z-blog在线安装功能! 因为在那个时候,以几K每秒的速度上传一个几M或者十几M的压缩包到虚拟主机上,是一个很痛苦的事情.特别是 ...
- JavaWeb学习总结(四):Servlet开发(二)
一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些 ...