使用ssh从linux服务器发出备份命令问题

时间:2013-10-01 11:25:30

标签: ssh mysqldump database-backups

对于ssh和mysql命令我是mewbie。 我有一个问题,使用无密码身份验证从一个Linux服务器备份到另一个Linux服务器。我已经为无密码身份验证生成了密钥并将其上传到另一台服务器。

我使用过这个命令

[user1@server1 ~]$ mysqldump -u dbuser -p"dbpwd" --opt  dbname | gzip -c | ssh  -o StrictHostKeyChecking=no -o UserKnownHostsFile=/...../known_hosts -l deploy -i  /...../id_rsa -v  user2@server2  "/bin/cat > user2@server2:/......./test.sql.gz" 2>&1 

现在,当我在SSH中运行命令时,出现以下错误

debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: gssapi-keyex
debug1: No valid Key exchange context
debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_20082' not found

debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_20082' not found

debug1: Unspecified GSS failure.  Minor code may provide more information


debug1: Unspecified GSS failure.  Minor code may provide more information


debug1: Next authentication method: publickey
debug1: Offering public key: /home/indus33/.ssh/id_rsa

我搜索了很多,但没有任何解决方案帮助过我。

如果有人对此频繁询问,请问我。

请帮我解决这个问题。

更新

我运行命令

[user @ server1~] $ ssh -o StrictHostKeyChecking = no -o UserKnownHostsFile = / .... / known_hosts -l deploy -i /..../id_rsa -v user2 @ server2

错误

OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010
debug1: Reading configuration data /.../ssh_config
debug1: Applying options for *
debug1: Connecting to server2IP [server2IP] port 22.
debug1: Connection established.
debug1: identity file /......./id_rsa type 1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
debug1: match: OpenSSH_5.3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.3
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host 'server2IP' is known and matches the RSA host key.
debug1: Found key in /......./known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: gssapi-keyex
debug1: No valid Key exchange context
debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_20082' not found

debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_20082' not found

debug1: Unspecified GSS failure.  Minor code may provide more information


debug1: Unspecified GSS failure.  Minor code may provide more information


debug1: Next authentication method: publickey
debug1: Offering public key: /....../id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 277
debug1: read PEM private key done: type RSA
debug1: Authentication succeeded (publickey).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = en_US.UTF-8
Last login: Mon Sep 30 03:25:52 2013 from server1
user2@server2 [~]# 

希望所有人都能清楚这个问题......

1 个答案:

答案 0 :(得分:0)

首先在server2上创建authorized_keys的最佳方法

 touch /root/.ssh/authorized_keys
 chmod 600 /root/.ssh/authorized_keys

然后将id_rsa.pub的内容复制到服务器

[user1@server1 ~]$ cat ~/.ssh/id_rsa.pub | ssh user2@server2 "cat >> ~/.ssh/authorized_keys"

然后在server1上发出以下mysqldump命令

[user1@server1 ~]$ mysqldump -u dbuser -p"dbpwd" --opt  dbname | gzip -c | ssh user2@server2 "/bin/cat > /your_path/test.sql.gz" 2>&