SCP命令

使用ssh公钥实现免密码登录

 (2011-04-22 01:24:10)

转载

标签: 

杂谈

分类: Linux系统

ssh无密码登录要使用公钥与私钥。linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例。

 

有机器A(192.168.1.155),B(192.168.1.181)。现想A通过ssh免密码登录到B。

首先以root账户登陆为例。

 

1.在A机下生成公钥/私钥对。

[root@A ~]# ssh-keygen -t rsa -P ''

 

-P表示密码,-P ''就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车。

该命令将在/root/.ssh目录下面产生一对密钥id_rsa和id_rsa.pub。

一般采用的ssh的rsa密钥:

id_rsa     私钥

id_rsa.pub 公钥

下述命令产生不同类型的密钥

ssh-keygen -t dsa

ssh-keygen -t rsa

ssh-keygen -t rsa1

 

2.把A机下的/root/.ssh/id_rsa.pub 复制到B机的/root/.ssh/authorized_keys文件里,先要在B机上创建好 /root/.ssh 这个目录,用scp复制。

[root@A ~]# scp /root/.ssh/id_rsa.pub root@192.168.1.181:/root/.ssh/authorized_keys

root@192.168.1.181's password:

id_rsa.pub                                    100%  223     0.2KB/s   00:00

 

由于还没有免密码登录的,所以要输入一次B机的root密码。

 

3.authorized_keys的权限要是600!!!

[root@B ~]# chmod 600 /root/.ssh/authorized_keys

 

 

 

4.A机登录B机。

[root@A ~]# ssh -l root 192.168.1.181

The authenticity of host '192.168.1.181 (192.168.1.181)' can't be established.

RSA key fingerprint is 00:a6:a8:87:eb:c7:40:10:39:cc:a0:eb:50:d9:6a:5b.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '192.168.1.181' (RSA) to the list of known hosts.

Last login: Thu Jul  3 09:53:18 2008 from root

[root@B ~]#

 

第一次登录是时要你输入yes。

 

现在A机可以无密码登录B机了。

 

小结:登录的机子可有私钥,被登录的机子要有登录机子的公钥。这个公钥/私钥对一般在私钥宿主机产生。上面是用rsa算法的公钥/私钥对,当然也可以用dsa(对应的文件是id_dsa,id_dsa.pub)

 

想让A,B机无密码互登录,那B机以上面同样的方式配置即可。

 

 

 

SSH-KeyGen 的用法

 

假设 A 为客户机器,B为目标机;

 

要达到的目的:

A机器ssh登录B机器无需输入密码;

加密方式选 rsa|dsa均可以,默认dsa

 

做法:

1、登录A机器

2、ssh-keygen -t [rsa|dsa],将会生成密钥文件和私钥文件id_rsa,id_rsa.pub或id_dsa,id_dsa.pub

3、将 .pub 文件复制到B机器的 .ssh 目录,  catid_dsa.pub >> ~/.ssh/authorized_keys

4、大功告成,从A机器登录B机器的目标账户,不再需要密码了;

 

 

 

ssh-keygen做密码验证可以使在向对方机器上ssh ,scp不用使用密码.

具体方法如下:

ssh-keygen -t rsa

然后全部回车,采用默认值.

 

这样生成了一对密钥,存放在用户目录的~/.ssh下。

将公钥考到对方机器的用户目录下,并拷到~/.ssh/authorized_keys中。

 

要保证.ssh和authorized_keys都只有用户自己有写权限。否则验证无效。(今天就是遇到这个问题,找了好久问题所在),其实仔细想想,这样做是为了不会出现系统漏洞。

 

来自 <http://blog.sina.com.cn/s/blog_4077692e0100qjkp.html>

 

 

 

 

 

 

 

实现执行scp命令时不需要输入用户密码

分类: Shell学习2012-07-17 11:47 2648人阅读 评论(0) 收藏 举报

filelinuxc

第一步,本地机器先产生 公钥

 

[root@Client root]# ssh-keygen -t rsa

Generatingpublic/private rsa key pair.

Enterfile in which to save the key (/root/.ssh/id_rsa):

Enter passphrase (empty for nopassphrase):                <-- 直接输入回车

Enter same passphraseagain:                           <-- 直接输入回车

Youridentification has been saved in /root/.ssh/id_rsa.

Yourpublic key has been saved in /root/.ssh/id_rsa.pub.

The keyfingerprint is:

49:9c:8a:8f:bc:19:5e:8c:c0:10:d3:15:60:a3:32:1croot@Client

 

这样就会在 用户目录下的   .ssh 目录下产生两个文件 id_rsa  id_rsa.pub,然后把 id_rsa.pub的内容复制到 远程机器的 用户目录下 .ssh 目录下的文件authorized_keys中即可。不需要覆盖它,只要粘贴在原有内容下边就行。

 

 

 

scp自动输入密码

 (2010-09-08 23:39:48)

转载

标签: 

杂谈

分类: shell脚本

方法一:

首先在备份服务器上配置:

    mkdir -p~/.ssh

    chmod 700~/.ssh

在~/.ssh/目录下生成密钥文件

    ssh-keygen-t rsa -P "" -f ~/.ssh/id_rsa

然后在其他服务器上配置:

    mkdir -p~/.ssh

    touch~/.ssh/authorized_keys

将备份服务器的id_rsa.pub内容追加到其他服务器的authorized_keys里面

    ssh192.168.1.249 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

 

    chmod 600~/.ssh/authorized_keys

 

在备份服务器上执行SCP命令

    scp-rp root@192.168.1.248:/tmp/scripts/hello ./

 

实现自动输入密码拷贝文件,达到备份其他服务器数据的目的。

 

 

 

方法二:

在备份服务器上编辑脚本,并添加任务计划

set DATE [exec date +%Y%m%d%k]

set password 123456

spawn scp -r Zdtech@192.168.1.248:/home/backup/mysqls_$DATE.sql.gz /home/backup/mysql/

set timeout 300

expect "Zdtech@192.168.2.248's password:"

set timeout 300

send "$password\r"

set timeout 300

send "exit\r"

expect eof

 

任务计划:0 6 * * * /home/script/Mysql_backup.sh> /dev/null 2>&1

 

来自 <http://blog.sina.com.cn/s/blog_45497dfa0100l4cj.html>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第二步,本地机器就可以通过 scp去获取文件了,不需要输入密码

 

scp xxx@10.6.6.54:(远程机器文件名) /root(本地机器文件名)  把文件从远程主机copy到当前系统

 

两个参数反过来就是 当前一个文件copy到远程另外一台主机上

 

搞定,不需要输入密码了。

 

linux scp 命令 可以 在 linux 之间复制文件 和 目录; 

 

================== 

scp 命令 

================== 

scp 可以在 2linux 主机间复制文件; 

 

命令基本格式: 

      scp [可选参数] file_source file_target 

 

====== 

从 本地 复制到 远程 

====== 

* 复制文件: 

       * 命令格式: 

               scp local_file remote_username@remote_ip:remote_folder 

               或者 

               scp local_file remote_username@remote_ip:remote_file 

               或者 

               scp local_file remote_ip:remote_folder 

               或者 

               scp local_file remote_ip:remote_file 

 

               1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名; 

               3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名; 

       * 例子: 

               scp /home/space/music/1.mp3 root@www.cumt.edu.cn:/home/root/others/music 

               scp /home/space/music/1.mp3root@www.cumt.edu.cn:/home/root/others/music/001.mp3 

               scp /home/space/music/1.mp3 www.cumt.edu.cn:/home/root/others/music 

               scp /home/space/music/1.mp3 www.cumt.edu.cn:/home/root/others/music/001.mp3 

 

* 复制目录: 

       * 命令格式: 

               scp -r local_folder remote_username@remote_ip:remote_folder 

               或者 

               scp -r local_folder remote_ip:remote_folder 

 

               1个指定了用户名,命令执行后需要再输入密码; 

               2个没有指定用户名,命令执行后需要输入用户名和密码; 

       * 例子: 

               scp -r /home/space/music/ root@www.cumt.edu.cn:/home/root/others/ 

               scp -r /home/space/music/ www.cumt.edu.cn:/home/root/others/ 

 

               上面 命令 将 本地 music 目录 复制 到 远程 others 目录下,即复制后有 远程 有 ../others/music/ 目录 

 

 

====== 

从 远程 复制到 本地 

====== 

从 远程 复制到本地,只要将 从 本地 复制到 远程 的命令 的 后2个参数 调换顺序即可; 

 

例如: 

       scproot@www.cumt.edu.cn:/home/root/others/music/1.mp3  /home/space/music/1.mp3 

       scp -r www.cumt.edu.cn:/home/root/others/ /home/space/music/

最简单的应用如下

 

scp 本地用户名 @IP 地址 : 文件名1 远程用户名 @IP 地址 : 文件名

 

[ 本地用户名 @IP 地址 :] 可以不输入 , 可能需要输入远程用户名所对应的密码 .

 

来自 <http://blog.csdn.net/hcwzq/article/details/7754681

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值