教你如何ssh免密操作和无需输入ip及用户名,已经scp如何使用
如何获取本地ip
1 | ifconfig | grep inet |
教你玩转ssh
ssh, secure shell,远程登录服务器,机器的一种命令。
此教程仅适合mac,unix,linux系统,windows系统请使用PuTTy 等软件进行操作。
1.先在本机生成rsa密钥对
1 | ssh-keygen -t rsa |
2.然后一路enter,不要设置密码
本机 .ssh 隐藏目录中会多几个文件,
authorized-keys config id_rsa id_rsa.pub known_hosts
其中id_rsa.pub是你的公钥,id_rsa是私钥。
1 | vi config |
3.然后开始免密操作,很简单,mac需要homebrew
1 | brew install ssh-copy-id |
然后,主要此处school是你的快捷名字。
1 | ssh-copy-id school |
这是最简单的操作,或者手动把你的公钥复制到远程服务器~/.ssh/authorized_keys中。
教你玩会scp
ssh就这么简单,既然如此简单,我们顺便提一下scp。
scp就是安全传输文件的命令,
scp没有那么多小技巧,唯一就是要注意路径怎么写,要用绝对路径,最好不要相对路径。
还有就是目录需要加-r
. 表示当前目录
~表示家目录
/表示根目录
了解以上3个即可帮你灵活使用scp了,记住,unix类的操作系统都是树形管理文件的,而不是windows分区形(其实我也不了解)
下面我们开始了解scp命令
1、从本地复制到远程
命令格式:
1 | scp local_file remote_username@remote_ip:remote_folder |
- 第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;
- 第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;
应用实例:
1 | scp /home/space/music/1.mp3 root@www.runoob.com:/home/root/others/music |
复制目录命令格式:
1 | scp -r local_folder remote_username@remote_ip:remote_folder |
- 第1个指定了用户名,命令执行后需要再输入密码;
- 第2个没有指定用户名,命令执行后需要输入用户名和密码;
应用实例:
1 | scp -r /home/space/music/ root@www.runoob.com:/home/root/others/ |
上面命令将本地 music 目录复制到远程 others 目录下。
2、从远程复制到本地
从远程复制到本地,只要将从本地复制到远程的命令的后2个参数调换顺序即可,如下实例
应用实例:
1 | scp root@www.runoob.com:/home/root/others/music /home/space/music/1.mp3 |
说明
1.如果远程服务器防火墙有为scp命令设置了指定的端口,我们需要使用 -P 参数来设置命令的端口号,命令格式如下:
1 | #scp 命令使用端口号 4588 |
2.使用scp命令要确保使用的用户具有可读取远程服务器相应文件的权限,否则scp命令是无法起作用的。