远程登陆与文件传输指令——ssh与scp

远程登陆指令 sshhtml

   ssh 是一个用于登陆远程主机并在远程主机上执行命令的程序。ssh 设计的本意在于在一个不肯定的网络环境下为两个互不信任的主机提供加密通讯功能。在 Linux 桌面版本上,通常内置有 ssh 命令供用户直接使用( 提供的是 ssh 客户端 )。在Windows环境下,用户须要下载独立的提供 ssh 功能的软件(如 Putty )才能使用相似功能。linux

  ssh经常使用参数ubuntu

    ssh [Options] [user@]hostname [command]
经常使用参数:
    -1            // 强制 ssh 使用初版协议( protocol version 1),默认使用的是第二版协议
    -2            // 强制 ssh 使用第二版协议( protocol version 2)
    -4            // 只使用IPv4地址
    -6            // 只使用IPv6地址
    -p xxx       // 指定远程主机上使用的端口号( 默认使用的端口为 22 )             

  ssh经常使用用法安全

  (1)远程登陆服务器

    ssh hostname    //其中 hostname 能够为IP地址或域名。登陆时会要求提供用户名和密码网络

    ssh user@hostname //同上,如 ssh yh@1.2.3.4 .在指定用户名后,登陆时仅提供密码便可ssh

  (2)远程执行命令ide

    ssh hostname command  // 远程执行 command 命令并返回显示结果,而不是显示登陆窗口,如 ssh 1.2.3.4 ls -l ,在验证用户名和密码后,即会返回在远程主机上执行 ls -l 命令的结果。工具

  其余post

  默认状况下,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 客户端软件,经过这些客户端软件去链接远程服务器,便可经过图形界面的方式较为便捷的使用本地主机与远端服务器之间的文件交互功能。

相关文章
相关标签/搜索