1. The use of 'echo' and piping to the ftp process. Examples included:
使用echo 和管道(不推荐)。
- [myname@Firestream ~]$ echo "open romoteip
- user myname mypassword
- verbose
- type binary
- put myfile
- quit" | ftp -in
2. 参数形式
- ************************************
- !/bin/sh
- #
- #Need the following entry in ~/.ftprc file to run this script:
- #
- # machine <anonymous ftp site> login ftp password <yourlogin>@yourdomain
- #
- if [ $# -le 0 ]; then
- echo "Usage: get_ftp_file "
- exit 1
- fi
- #
- # Go and get
- #
- file="$1"
-
- #
- # Replace /tmp with a directory name where you want to put your ftp file
- #
- cd /tmp
- echo "
- get $file
- quit" | ftp -i <ftp site>
-
- **************************************
- $ echo "user username passwd\n binary\n put sourcefile destfile\n" | ftp -n
- host
-
- **************************************
3.脚本(这种最好用)
- #!/bin/sh
- #
- # sample automatic ftp script to dump a file
- ftp -v -n $host << EOF
- user $login_name $password
- prompt
- cd $dir
- put $file
- quit
- EOF
chmod a+x b.bat
./b.bat
4 scp
scp test user@romoteip:
但是需每次输入密码,批处理,使用公钥密码传输。
假设A machine 和 B machine进行传输
<1>在Amachine 上 产生密码
ssh-keygen -t rsa
<2>.ssh/id_rsa.pub 拷贝到 B机器上的相同位置(.ssh/),并改名为authorized_keys
<3 >测试一下
scp -p Amachinefile user@machineB:
这里就不需要密码了。
5. 如果是多台呢,authorized_keys会不会覆盖掉?这里就讲怎么处理多台机器相互传输。
多台机器的公钥密码
方法1>使用 ssh-copy-id 来追加公钥。
ssh-copy-id :
install your identity.pub in a remote machine’s authorized_keys SYNOPSIS:
ssh-copy-id [-i [identity_file]] [user@]machinessh-copy-id默认端口是22,可能会碰到两个机器端口不一致问题,可以这样解决
ssh-copy-id -i ~/.ssh/id_rsa.pub “-p 10022 ”
---------------------------------------------------------------
exp: A 想与B建立公钥连接,且A不想输入密码。
1,在A上生成 rsa 公钥与私钥(ssh-keygen,3个回车默认情况),并把a的公钥传给B
2. 在B机器上,加入a的公钥
方法: ssh-copy-id -i a.pub machineBuser@Bip
不要搞反了。
检查B机器上会出现 .ssh/authorized_keys 会出现A机器的rsa 公钥信息。
这样从A登陆B就不需要密码了。
或者更简单的方法: 直接把B的public key 考入 A 的.authorized_keys 。
6使用expect
现在还没时间学习,十一时学习,待补充
/**********************/
$ sftp user@remoteip
The authenticity of host 'remoteip (remoteip)' can't be established.
RSA key fingerprint is dxx:xx:xx.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'remoteip' (RSA) to the list of known hosts.
user@remoteip 's password:
Connected to remoteip.
第一次执行sftp 时,会把 远程服务器的rsa 公钥加入本地的.ssh/authorized_keys 里面。
post:
爱死 RSA了,结束了记忆密码时代,又安全。
阅读(1310) | 评论(1) | 转发(0) |