为了进行批量关机工作,前提要配置好ssh的双机信任。
A机192.168.1.241
B机192.168.1.212
在A机上获取一个pub密钥,即为公共密钥。
执行这个命令后:ssh-keygen -t rsa
在 ~/.ssh/目录下
使用scp命令,将公钥拷贝到B机
SUSE-linux:~/.ssh # scp id_rsa.pub root@192.168.1.212:/tmp/
拷贝完成
进入B机
cd ~/.ssh/
这个目录
将A机的公钥拷贝到authorized_keys这个文件下
linux-218:~/.ssh # cat /tmp/id_rsa.pub >> authorized_keys
最后设置权限为600即可
返回到A机测试
大功告成
配置第二台机时出现一个奇葩问题
C机192.168.1.218
在用户root的家目录下没有.ssh文件夹
按照网上说法,在C机执行ssh localhost后自动生成
接下来就按照原样进行配置即可。
以上为root用户信任关系配置,若要配置普通用户信任关系,可su到对应的用户下进行以上配置即可。
SCP用于linux下相互传送传文件命令方式的一种。
本地->远端(复制文件):
scp LocalFile UserName@RemoteIP:RemoteFile
本地->远端(复制目录):
scp -r LocalFolder UserName@RemoteIP:RemoteFolder
远端->本地(复制文件):
scp UserName@RemoteIP:RemoteFile LocalFile
远端->本地(复制目录):
scp -r UserName@RemoteIP:RemoteFolder LocalFolder
远端->远端(复制文件,从1复制到2) :
scp UserName1@RemoteIP1:RemoteFile1 UserName2@RemoteIP2:RemoteFile2
远端->远端(复制目录,从1复制到2):
scp -r UserName1@RemoteIP1:RemoteFolder1 UserName2@RemoteIP2:RemoteFolder2
一、推送式:首先登陆到本机,将本机的文件推送到远程主机。
命令格式:
1、 scp local_file remote_username@remote_ip:remote_folder
2、 scp local_file remote_username@remote_ip:remote_folder/remote_file
3、 scp local_file remote_ip:remote_folder
4、 scp local_file remote_ip:remote_folder/remote_file
第1,2个指定了用户名,命令执行后需要再输入密码。第1个仅指定了远程的目录,文件名字不变;
第2个指定了文件名;
第3,4个没有指定用户名,命令执行后需要输入用户名和密码。第3个仅指定了远程的目录,文件名字不变;
第4个指定了文件名;
例子: 登陆到本机(172.168.0.12),将本机文件1.mp3推送到远程主机172.168.0.13上
1、scp /home/space/music/1.mp3 root@172.168.0.13:/home/root/others/music
2、scp /home/space/music/1.mp3 root@172.168.0.13:/home/root/others/music/001.mp3
3、scp /home/space/music/1.mp3 172.168.0.13:/home/root/others/music
4、scp /home/space/music/1.mp3 172.168.0.13:/home/root/others/music/001.mp3
第1个例子是将本机/home/space/music目录下的1.mp3,推送到172.168.0.13的/home/root/others/music目录下,文件名不改变。
第2个例子是将本机/home/space/music目录下的1.mp3,推送到172.168.0.13的/home/root/others/music目录下,文件名为001.mp3。
第3个例子是将本机/home/space/music目录下的1.mp3,推送到172.168.0.13的/home/root/others/music目录下,文件名不改变。
第4个例子是将本机/home/space/music目录下的1.mp3,推送到172.168.0.13的 /home/root/others/music目录下,文件名为001.mp3。
二、拉取式:从远程复制到本机,只要把推送式中命令的后2个参数调换顺序即可。
命令格式:
1、 scp remote_username@remote_ip:remote_folder/remote_file local_folder/local_file
2、 scp remote_username@remote_ip:remote_folder/remote_file .
例子: 登陆到本机(172.168.0.12),将远程主机172.168.0.13上的1.mp3复制到本机
1、scp root@172.168.0.13:/home/root/others/music/1.mp3 /home/space/music/001.mp3
2、scp root@172.168.0.13:/home/root/others/music/1.mp3 .
第1个例子是将172.168.0.13上/home/root/others/music目录下的1.mp3,复制到本机的/home/space/music目录下,文件名为001.mp3。
第2个例子是将172.168.0.13上/home/root/others/music目录下的1.mp3,复制到本机的当前工作目录下,文件名不变。
注:如果不能直连,经过了几跳才连接到目标主机,可通过一级一级的获取得到目标文件。
例如:本机(172.168.0.12)首先连接172.168.0.13,然后再连接172.168.0.14,再连接172.168.0.15,想获取15上文件到本机12上。
拉取式:可以通过172.168.0.14拉取172.168.0.15上文件,然后在172.168.0.13拉取14的,最后在172.168.0.12上拉取13上的。
推送式:可以通过172.168.0.15推送到172.168.0.14上,然后在14上推送到172.168.0.13上,最后在13上推送到172.168.0.12上。
Linux命令之sftp
sftp命令可以通过ssh来上传和下载文件,是常用的文件传输工具,它的使用方式与ftp类似,但它使用ssh作为底层传输协议,所以安全性比ftp要好得多。
常用方式
格式:sftp <host>
通过sftp连接<host>,端口为默认的22,用户为Linux当前登录用户。
格式:sftp -oPort=<port> <host>
通过sftp连接<host>,指定端口<port>,用户为Linux当前登录用户。
格式:sftp <user>@<host>
通过sftp连接<host>,端口为默认的22,指定用户<user>。
格式:sftp -oPort=<port> <user>@<host>
通过sftp连接<host>,端口为<port>,用户为<user>。
sftp连接成功之后常用操作命令如下:
help/? 打印帮助信息。
pwd 查看远程服务器当前目录;
lpwd 查看本地系统的当前目录。
cd <dir> 将远程服务器的当前目录更改为<dir>;
lcd <dir> 将本地系统的当前目录更改为<dir>。
ls 显示远程服务器上当前目录的文件名;
ls -l 显示远程服务器上当前目录的文件详细列表;
ls <pattern> 显示远程服务器上符合指定模式<pattern>的文件名;
ls -l <pattern> 显示远程服务器上符合指定模式<pattern>的文件详细列表。
lls 显示本地系统上当前目录的文件名;
lls的其他参数与ls命令的类似。
get <file> 下载指定文件<file>;
get <pattern> 下载符合指定模式<pattern>的文件。
put <file> 上传指定文件<file>;
get <pattern> 上传符合指定模式<pattern>的文件。
progress 切换是否显示文件传输进度。
mkdir <dir> 在远程服务器上创建目录;
lmkdir <dir> 在本地系统上创建目录。
exit/quit/bye 退出sftp。
! 启动一个本地shell。
! <commandline> 执行本地命令行。
其他命令还有:chgrp, chmod, chown, ln, lumask, rename, rm, rmdir, symlink, version。