scp和ssh的基础操作

scp

作用: 主机和主机之间文件相互传输,每次都是全量的传输.基于SSH方式传输 默认使用的22端口
推送:
#将当前主机的1.txt 拷贝到 10.0.0.31的家目录下
scp 1.txt root@10.0.0.31:/root/
#拷贝多个文件
scp 1.txt 2.log root@10.0.0.31:/root/
拷贝目录:
scp -r oldboy root@10.0.0.31:/opt
使用域名:
scp hosts root@www.linuxnc.com:/tmp/
默认通过22端口删除,目标是2222 使用-P指定端口号
[root@web01 ~]# scp -P2222 /etc/hosts root@10.0.0.41:/root/
拉取
#将31服务器上的31.txt 下载到当前的位置
scp 10.0.0.31:/root/31.txt ./
#将31服务器上的data目录 下载到当前的位置
scp -r 10.0.0.31:/data /opt

ssh

基础连接方法

windows可以Linux
第一种连接方式: 直接连接手动输入用户名和密码
[c:\~]$ ssh 10.0.0.7
第二种连接方式: 指定用户名
[c:\~]$ ssh root@10.0.0.7
第三种连接方式: 指定端口
[c:\~]$ ssh 10.0.0.41 2222
基于用户名和密码的链接
Linux可以连接linux
[root@web01 ~]# ssh 10.0.0.31
指定用户连接
[root@web01 ~]# ssh root@10.0.0.31
指定端口连接
[root@web01 ~]# ssh -p2222 10.0.0.41
基于免秘钥的方式进行远程连接

免秘钥连接服务器

  • 以web01免密登录nfs为例

1.web01生成秘钥对

[root@web01 ~]# ssh-keygen		#列出的选项全部默认回车即可

2.查看密钥对

[root@web01 ~]# ll .ssh/
total 8
-rw------- 1 root root 2590 Dec  3 08:23 id_rsa
-rw-r--r-- 1 root root  564 Dec  3 08:23 id_rsa.pub

3.将公钥拷贝到10.0.0.31

[root@web01 ~]# ssh-copy-id 10.0.0.31	#需输入nfs密码
#公钥可以拷贝到多个服务器,实现多个服务器免密登录

4.实现免密钥连接

[root@web01 ~]# ssh 10.0.0.31

注意事项(目录和文件的权限)

所有目录的权限必须正确:
[root@nfs ~]# ll -d /       # 根目录555
dr-xr-xr-x. 21 root root 276 Dec  5 10:30 /
[root@nfs ~]# ll -d /root   # 家目录权限为550
dr-xr-x--- 4 root root 154 Dec  5 10:30 /root
[root@nfs ~]# ll -d .ssh	# .ssh存放公钥和秘钥的目录 700
drwx------ 2 root root 48 Dec  5 10:45 .ssh
[root@nfs ~]# ll .ssh/	    #存放公钥的文件必须为600
total 8
-rw------- 1 root root 1129 Dec  5 10:48 authorized_keys

私钥的权限: 600
[root@web01 ~]# ll .ssh/
total 12
-rw------- 1 root root 2590 Dec  5 10:42 id_rsa
-rw-r--r-- 1 root root  564 Dec  5 10:42 id_rsa.pub

xshell免密连接web01

  1. xshell生成秘钥对:xshell-->工具-->新建生成秘钥向导(注意秘钥名称;不必再设置密码)
  2. 将生成的公钥写入到web01服务器
[root@web01 ~]# vim .ssh/authorized_keys
在xshell-->工具-->用户秘钥管理者中即可查看
#授权公钥文件权限为600
[root@web01 ~]# chmod 600 .ssh/authorized_keys

​ 3.使用xshell连接web01,选择Public Key-->用户秘钥-->你刚刚生成的密钥,即可免密登录

注:可修改ssh配置文件禁止root用户密码登录

[root@web01 ~]# awk 'NR==66' /etc/ssh/sshd_config
PasswordAuthentication no

通过web01自动登录私网服务器

  • 已知两台私网服务器IP为

    • nfs:172.16.1.31
    • backup:172.16.1.41
  • 设置方法

    • 在xshell-->会话-->右击web01会话-->属性-->登录脚本-->配置等待并发送规则
    • 等待:]#
    • 发送:ssh 172.16.1.31

使用ssh远程执行命令

[root@web01 ~]# ssh 10.0.0.31 'touch /root/1.txt'
posted @ 2025-03-20 19:55  丁志岩  阅读(20)  评论(0)    收藏  举报