[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
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
·找到#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
[Linux][Mac]如何使用SSH登陆远程Linux服务器&使用SCP下载远程终端文件的更多相关文章
- Mac下用SSH连接远程Linux或Mac服务器
1.打开Mac终端 2.切换到root登录 输入命令:sudo -i,然后输入本机密码 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px &qu ...
- Mac OS X下配置远程Linux 服务器SSH密钥认证自动登录
1. 在本地机器创建公钥 打开万能的终端,执行如下命令,无视一切输出,一路欢快地回车即可. ssh-keygen -t rsa -C 'your email@domain.com' -t 指定密钥类型 ...
- ssky-keygen + ssh-copy-id 无密码登陆远程LINUX主机
ssky-keygen + ssh-copy-id 无密码登陆远程LINUX主机 使用下例中ssky-keygen和ssh-copy-id,仅需通过3个步骤的简单设置而无需输入密码就能登录远程Linu ...
- ssky-keygen + ssh-copy-id 无密码登陆远程LINUX主机【OK】
ssky-keygen + ssh-copy-id 无密码登陆远程LINUX主机[OK] 使用下例中ssky-keygen和ssh-copy-id,仅需通过3个步骤的简单设置而无需输入密码就能 ...
- Linux下不借助工具实现远程linux服务器上传下载文件
# Linux下不借助工具实现远程linux服务器上传下载文件 ## 简介 - Linux下自带ssh工具,可以实现远程Linux服务器的功能- Linux下自带scp工具,可以实现文件传输功能 ## ...
- Mac使用ssh登录远程linux系统查看jetty日志及同时使用github工具
转载请注明出处:http://www.houxiurong.com/?post=27 Mac默认是安装了ssh工具软件的. 先用mac的 终端工具生成 id_rsa 和id_rsa.pub 秘钥,生成 ...
- linux_ssky-keygen + ssh-copy-id 无密码登陆远程LINUX主机
使用下例中ssky-keygen和ssh-copy-id,仅需通过3个步骤的简单设置而无需输入密码就能登录远程Linux主机. ssh-keygen 创建公钥和密钥. ssh-copy-id 把本地主 ...
- 教你如何配置linux用户实现禁止ssh登陆机器但可用sftp登录!
构想和目标最近有个这样的诉求:基于对线上服务器的保密和安全,不希望开发人员直接登录线上服务器,因为登录服务器的权限太多难以管控,如直接修改代码.系统配置,并且也直接连上mysql.因此希望能限制开发人 ...
- linux 禁止指定账号ssh登陆
1 2 3 4 vim /etc/pam.d/sshd #在第一行添加以下代码 auth required pam_listfile.so item=user sense=de ...
随机推荐
- C# 使用System.Speech 进行语音播报和识别
C# 使用System.Speech 进行语音播报和识别 using System.Speech.Synthesis; using System.Speech.Recognition; //语音识别 ...
- Apple Mach-O Linker Error Group 与 "_OBJC_CLASS_$_XXXXXX", referenced from: 和 clang: error: linker command failed with exit code 1 (use -v to see invocation) 问题.
此问题为链接报错,在Build Settings中的Other Linker Flags添加:-l"XXXXXX"
- MVC+EF 多条件查询
根据以前的做法是拼接sql语句,这会增加维护成本,因为sql语句里的内容不会报错,所以在使用ef的时候必须要抛弃拼接sql语句的习惯. 构建实例 List<vyw_user> list = ...
- Node.js创建本地简易服务器
创建简易的本地服务器 安装node.js 在项目下,通过npm init -y创建package.json文件 通过npm install mime --save加载mime插件 创建server.j ...
- C#使用Dotfuscator混淆代码的加密方法
C#编写的代码如果不进行一定程度的混淆和加密,那么是非常容易被反编译进行破解的,特别是对于一些商业用途的C#软件来说,因为盯着的人多,更是极易被攻破.使用VS自带的Dotfuscator可以实现混淆代 ...
- Xaml引用图片路径的方式
最近写代码的时候遇到过好几次引用某个路径下图片资源的情况,思索了一下,便将自己所知的在xaml里引用图片资源的方法写成了个小Demo,并完成了这篇博文.希望罗列出的这些方式能够对大家有所帮助. Xam ...
- kali入门
第一章:入门kalilinux By:鬼尘 第一章基本上就是涵盖以下的主题: ·kali的发展简史 ·kali的一般用途 ·kali的下载与安装 ·kali的配置与更新 在本章结尾部分,我们还会介绍k ...
- ubuntu自带截图工具--方便好用(转)
一般用到的截图类型有三种:全屏.当前活动窗口.自定义区域,其中自定义区域截图是最灵活也是我们用的最多的方式.在ubuntu下可以通过其自带的截图工具轻松实现这三种功能. ubuntu自带的截图工具为s ...
- Promise实践
一.概念 Promise是异步编程的解决方案之一,与事件驱动+回调函数并列. Promise是专门为异步编程设计的封闭的一次性用品,封闭体现在只有异步操作的结果能改变其状态,其他任何操作都不能改变其状 ...
- 1-C++的并发世界
1.1 何谓并发 并发的两种方式 多核机器上的真正并行 单核机器的任务切换 并发的两种途径 多进程并发 1.1 多进程并发需要通过操作系统进行进程间通信 多线程并发 2.1 多线程并发需要共享内存 1 ...