zoukankan      html  css  js  c++  java
  • [Linux][Mac]如何使用SSH登陆远程Linux服务器&使用SCP下载远程终端文件

    ---------------------------

    2017-01-16 初版

    2017-01-17 增加ssh登录端口修改

    --------------------------

    一、使用ssh

    ssh命令用于远程登录Linux主机。

    window下可以用putty来ssh登录,mac下直接使用terminal即可。

    1.语法

    常用格式:ssh [-l login_name] [-p port] [user@]hostname

    更详细的可以用man ssh查看。

    使用账号登录指定ip的服务器:

    ssh 用户名@ip地址

    如果服务器使用的不是标准端口,比如1024,则是:

    ssh 用户名@ip地址 -p 1024

    Mac下还有窗口打开方式:
    打开terminal,菜单栏选shell - 新建远程连接

    在弹出窗口内选择ssh(自动),输入服务器ip地址和用户名

    完成后,在ssh菜单上选择 导出设置,在你的桌面就会看到一个刚命名的test.terminal

    2. 实例

    公司的服务器地址是192.168.0.11,用户名和密码是jenkins,那么登录的方式就是

    ssh jenkins@192.168.0.11

    3. ssh登录端口修改

    修改配置文件/etc/ssh/sshd_config,可以改ssh登录端口和禁止root登录。改端口可以防止被端口扫描。

    ·编辑配置文件:

    vim /etc/ssh/sshd_config

    ·找到#Port 22,去掉注释,修改成一个五位的端口,比如:

    Port 12345

    ·找到#PermitRootLogin yes,去掉注释,修改为:

    PermitRootLogin no

    ·重启sshd服务:

    service sshd restart

    二、使用SCP

    windows下我习惯使用winscp,mac下没有winscp,索性使用自带的scp命令。

    语法

    dzblogdeMacBook-Pro:TestFolder dzblog$ scp --help
    scp: illegal option -- -
    usage: scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
               [-l limit] [-o ssh_option] [-P port] [-S program]
               [[user@]host1:]file1 ... [[user@]host2:]file2

    参数说明:

    -1    强制scp命令使用协议ssh1 
    -2    强制scp命令使用协议ssh2 
    -4    强制scp命令只使用IPv4寻址 
    -6    强制scp命令只使用IPv6寻址 
    -B    使用批处理模式(传输过程中不询问传输口令或短语) 
    -C    允许压缩。(将-C标志传递给ssh,从而打开压缩功能) 
    -p    保留原文件的修改时间,访问时间和访问权限
    -q    不显示传输进度条
    -r    递归复制整个目录
    -v     详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,

    -c cipher      以cipher将数据传输进行加密,这个选项将直接传递给ssh。
    -F ssh_config   指定一个替代的ssh配置文件,此参数直接传递给ssh。
    -i identity_file  从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
    -l limit       限定用户所能使用的带宽,以Kbit/s为单位。
    -o ssh_option  如果习惯于使用ssh_config(5)中的参数传递方式,
    -P port      注意是大写的P, port是指定数据传输用到的端口号
    -S program   指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。

    实例

    1. 复制目录到本地
    将192.168.0.11linux系统下的tools文件夹,复制到/Users/dongzheng/GitRepository/temp/

    scp -r jenkins@192.168.0.11:/home/jenkins/tools /Users/dzblog/GitRepository/temp/

    2. 复制文件到本地

    将192.168.0.11linux系统/home/jenkins/tools/test.file,复制到当前目录

    scp jenkins@192.168.0.11:/home/jenkins/tools/test.file ./

    3. 上传本地目录到服务器

    将本地目录testFolder,上传到,地址是192.168.0.11的linux系统下的/home/jenkins/tools/文件夹下

    scp -r ./testFolder jenkins@192.168.0.11:/home/jenkins/tools/

    也可以反过来:

    scp -r jenkins@192.168.0.16:/Users/jenkins/jenkins-android/workspace/testFolder ./

    4. 上传本地文件到服务器

    将在testFolder下的test.txt,上传到,地址是192.168.0.11的linux系统下的/home/jenkins/tools/文件夹下

    scp ./testFolder/test.txt jenkins@192.168.0.11:/home/jenkins/tools/

    参考

    http://www.cnblogs.com/littleBit/p/5362806.html
    http://ypf3027.iteye.com/blog/1405507
    http://blog.163.com/l1_jun/blog/static/143863882014325115230504/
    https://www.zhihu.com/question/50641425

     

  • 相关阅读:
    python之生成器
    Python 类(一)
    Python OOP(面向对象编程)
    python 静态方法、类方法(二)
    记一个有想法没能力实现的产品形态——实时公交
    ubuntu12.04离线安装libjpeg62-dev
    linux内核container_of宏定义分析
    signal函数理解或者void (*signal(int signum,void(*handler)(int)))(int)理解
    HttpServlet cannot be resolved to a type解决方法
    ubuntu12.04不能记住上次编辑位置的解决方案
  • 原文地址:https://www.cnblogs.com/dzblog/p/6232380.html
Copyright © 2011-2022 走看看