有什么tool可以实现这个呢
11 个解决方案
#1
可以使用expect 脚本
搜一下,网上很多例子
搜一下,网上很多例子
#2
另外,scp可以不出现密码输入提示信息麽??
scp ./south_db.sql root@135.252.234.118:~
scp命令是没有密码参数的呢
scp ./south_db.sql root@135.252.234.118:~
scp命令是没有密码参数的呢
#3
这些通过expect 脚本都可以实现,expect就是模拟手工交互的过程
例如
#!/usr/bin/expect
set password 123
spawn scp ./south_db.sql root@135.252.234.118:~
expect -nocase "password: "
send "$password\r"
expect eof
例如
#!/usr/bin/expect
set password 123
spawn scp ./south_db.sql root@135.252.234.118:~
expect -nocase "password: "
send "$password\r"
expect eof
#4
你这是用root的scp 直接用密码还不安全 用expect就把root密码暴露在文件里了
采用无密码公钥认证就ok啦!!
在现在的客户端机器里用ssh-kegen -b 2048 生成密钥对 在要求输入密码的时候直接回车 然后会在你的~/.ssh下生成一个公钥和密钥
即id_rsa,id_rsa.pub 然后chmod 600 ~/.ssh/id_rsa 然后用scp ~/.ssh/id_rsa.pub root@135.252.234.118:/root/id_rsa.pub
把公钥id_rsa.pub传到服务器上去
接下来是在服务器端135.252.234.118的root用户的设置
mkidr -p ~/.ssh && chmod 700 ~/.ssh
cat ~/id_dsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
修改/etc/ssh/sshd_config把
PasswordAuthentication yes
改成
PasswordAuthentication no
然后重启sshd
好了这下从客户端的root用scp向服务器传东西就不用密码了
#5
熊猫的这个好专业和安全呀!公司服务器服务不能停。回家上虚拟机上试试去。
#6
熊猫的这个好专业和安全呀!公司服务器服务不能停。回家上虚拟机上试试去
----------------------
我都是用密钥认证的rsync和scp备份的。 只要你操作正确 服务器不会停的 一点事都没有。不过你第一次弄的话 在虚拟机上测试一下是完全之策。
----------------------
我都是用密钥认证的rsync和scp备份的。 只要你操作正确 服务器不会停的 一点事都没有。不过你第一次弄的话 在虚拟机上测试一下是完全之策。
#7
root用户执行脚本时,切换用户不用输密码吧
#8
不输入密码有2种方式
1:expect脚本
2 公钥
1:expect脚本
2 公钥
#9
我这里指的是任意用户之间的切换
普通-->root-->mysql-->普通
#10
sudo, setuid
#11
直接用
system "密码"
就ok
system "密码"
就ok
#1
可以使用expect 脚本
搜一下,网上很多例子
搜一下,网上很多例子
#2
另外,scp可以不出现密码输入提示信息麽??
scp ./south_db.sql root@135.252.234.118:~
scp命令是没有密码参数的呢
scp ./south_db.sql root@135.252.234.118:~
scp命令是没有密码参数的呢
#3
这些通过expect 脚本都可以实现,expect就是模拟手工交互的过程
例如
#!/usr/bin/expect
set password 123
spawn scp ./south_db.sql root@135.252.234.118:~
expect -nocase "password: "
send "$password\r"
expect eof
例如
#!/usr/bin/expect
set password 123
spawn scp ./south_db.sql root@135.252.234.118:~
expect -nocase "password: "
send "$password\r"
expect eof
#4
你这是用root的scp 直接用密码还不安全 用expect就把root密码暴露在文件里了
采用无密码公钥认证就ok啦!!
在现在的客户端机器里用ssh-kegen -b 2048 生成密钥对 在要求输入密码的时候直接回车 然后会在你的~/.ssh下生成一个公钥和密钥
即id_rsa,id_rsa.pub 然后chmod 600 ~/.ssh/id_rsa 然后用scp ~/.ssh/id_rsa.pub root@135.252.234.118:/root/id_rsa.pub
把公钥id_rsa.pub传到服务器上去
接下来是在服务器端135.252.234.118的root用户的设置
mkidr -p ~/.ssh && chmod 700 ~/.ssh
cat ~/id_dsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
修改/etc/ssh/sshd_config把
PasswordAuthentication yes
改成
PasswordAuthentication no
然后重启sshd
好了这下从客户端的root用scp向服务器传东西就不用密码了
#5
熊猫的这个好专业和安全呀!公司服务器服务不能停。回家上虚拟机上试试去。
#6
熊猫的这个好专业和安全呀!公司服务器服务不能停。回家上虚拟机上试试去
----------------------
我都是用密钥认证的rsync和scp备份的。 只要你操作正确 服务器不会停的 一点事都没有。不过你第一次弄的话 在虚拟机上测试一下是完全之策。
----------------------
我都是用密钥认证的rsync和scp备份的。 只要你操作正确 服务器不会停的 一点事都没有。不过你第一次弄的话 在虚拟机上测试一下是完全之策。
#7
root用户执行脚本时,切换用户不用输密码吧
#8
不输入密码有2种方式
1:expect脚本
2 公钥
1:expect脚本
2 公钥
#9
我这里指的是任意用户之间的切换
普通-->root-->mysql-->普通
#10
sudo, setuid
#11
直接用
system "密码"
就ok
system "密码"
就ok