- PR -

scpコマンドに関するご質問。

1
投稿者投稿内容
貧乏人
会議室デビュー日: 2007/02/15
投稿数: 17
投稿日時: 2007-10-29 10:28
いつも参考にさせて頂いています、貧乏人です。

(多分、すごく基本的かと思われますが、、)
scpコマンドにて

[user@server01 user]$ scp file.sh user@server02:/home/user/.
で入力して
user@server02's password:
にてパスワードを入力すると

set -x

というメッセージが出力されます。
このメッセージはそもそも何なのか?
manコマンドやネットで(ハイフンを有効にした形で)調べているのですが
よくわからない状況です。

すみませんがどなたか教えていただきたく思います。

[ メッセージ編集済み 編集者: 貧乏人 編集日時 2007-10-29 10:30 ]
SHR
ベテラン
会議室デビュー日: 2006/06/15
投稿数: 99
投稿日時: 2007-10-29 12:13
scpは詳しくありませんが、set -xはshellで使用するset -xじゃないでしょうか?

ttp://www.linux.or.jp/JM/html/GNU_bash/man1/bash.1.html より引用
>-x
> 単純なコマンドをそれぞれ展開した後、 PS4 を展開した値を表示し、その後にそのコマンドと展開した引き数を表示します。

エイリアス定義したコマンドとかset -xした後に実行すると、
何をやっているか判ります。
全然違いましたらゴメンナサイ。
貧乏人
会議室デビュー日: 2007/02/15
投稿数: 17
投稿日時: 2007-10-29 16:39
SHRさん、ありがとうございます。

試してみたのですが、

[user@server01 user]$ set -x
[user@server01 user]$ set -x
+ set -x
[user@server01 user]$ scp file.sh user@server02:/home/user/.
+ scp file.sh user@server02:/home/user/.
user@server02's password:
にてパスワードを入力すると
set -x

でして、特に変なコマンドは実行されていないようです。

ちなみに
user@server02's password:
にてわざと違うパスワードを入力すると
Permission denied, please try again.
とでるので、、
scpコマンドが変な箇所で止まっているような、、、?
(scpコマンド→パスワードO.K→処理が変)
気がするのですがこれはどう確認するのが良いでしょうか?

/usr/binの中のscpも更新履歴から察するに特に変更されてないようです。

もしくは、他の設定を施すと上記のような現象が発生する等あるのでしょうか?

[ メッセージ編集済み 編集者: 貧乏人 編集日時 2007-10-29 16:57 ]
blunder
ベテラン
会議室デビュー日: 2003/09/11
投稿数: 65
投稿日時: 2007-10-29 19:46
引用:

scpコマンドが変な箇所で止まっているような、、、?
(scpコマンド→パスワードO.K→処理が変)
気がするのですがこれはどう確認するのが良いでしょうか?



scpに-vオプションをつけるとよいです。
Ay
常連さん
会議室デビュー日: 2006/10/29
投稿数: 45
投稿日時: 2007-10-29 22:55
こんばんわ。

接続先サーバ(server02)の /etc/ssh/sshrc または、接続ユーザの ~/.ssh/rc が存在していたりしませんか?
で、この中に、set -x を実行するよう定義されている、とか。
または、他の「ログイン時に実行する設定」が悪さしているとか。

このファイルは ssh ログイン時に実行するコマンドで、昔試したとき(現在は挙動が違うかもしれません)は、これを利用すると scp/sftp が失敗した記憶があります。

man sshd(8) の "LOGIN PROCESS" の文書をご参考ください。
貧乏人
会議室デビュー日: 2007/02/15
投稿数: 17
投稿日時: 2007-10-30 09:57
blunderさん、Ayさんありがとう御座います。

Ayさんのコメントを参考に
/etc/ssh/以下を見ていたら
(正常にうまくいくサーバの設定とdiffをかけたら、)
/etc/ssh/sshd_config の記述の中で

正常サーバ↓)
# Authentication:
#LoginGraceTime 120
#PermitRootLogin yes
#StrictModes yes

問題サーバ↓)
# Authentication:
#LoginGraceTime 120
PermitRootLogin no
#StrictModes yes

PermitRootLoginの差異がありました。どうやら上記の設定に原因がありそうです。
ちょっと再現テストを実施するのと
blunderさんの方法と併せて下記ドキュメントなどにて設定プロパティの詳細調査にて調査してみます。
ttp://www.unixuser.org/%7Eeuske/doc/openssh/jman/sshd_config.html

あまり関係無いのですが、
/etc/ssh/sshd_configの設定はサーバの再起動で適用されるようですね。

結果がハッキリしましたらまたご報告させて頂きます。

[ メッセージ編集済み 編集者: 貧乏人 編集日時 2007-10-30 09:59 ]
貧乏人
会議室デビュー日: 2007/02/15
投稿数: 17
投稿日時: 2007-10-30 17:44
自己レスとご質問にて、(度々すみません。)

/etc/ssh/sshd_config の記述の中の
# Authentication:(ssh認証)の
PermitRootLoginパラメータはルートでsshさせない設定でして、
一般的なポリシーとして(環境にもよるのですが)有効にしておいてしかるべきですよね。。。

>/etc/ssh/sshd_configの設定はサーバの再起動で適用されるようですね。
→上記のコンフィグファイルはsshのサービスの再起動のみで反映されました。
[root@server02 root]# /etc/init.d/sshd stop
[root@server02 root]# /etc/init.d/sshd start
のみで反映されるのでサーバの再起動は不要ですと。


Ayさんのおっしゃるとおり、
[user@server01 user]$ scp -v file.sh user@server02:/home/user/.
のディバックモードにて実施しました。結果、

user@server02's password:(パスワード入力)
debug1: Authentication succeeded (password).
(途中省略)

にてうまくscpが動くサーバですと、
debug1: channel 0: open confirm rwindow 0 rmax 32768
Sending file modes: ------- (以降転送ファイルと結果が表示される)

となるべき箇所が、問題のサーバ上ですと
debug1: channel 0: open confirm rwindow 0 rmax 32768
set -x

となっていました。

ディバックモードでコマンドを叩くと初っ端、
Executing: program /usr/bin/ssh host server02,
となっているので/usr/bin/sshを見たのですが、
更新されていないようですしバイナリなので修正されたパッチを充てるしかないのかとも思いますが、、、
どうでしょうか?
自分で(scpコマンドのみ)修正することができるのでしょうか?

暫定的に/etc/ssh/sshd_configのPermitRootLoginパラメータをコメントアウトして
ルート権限でscpを実行するとうまくいくので、
(一般ユーザだとset -xとなる)scpコマンドのみはルートを使用することとします。

[ メッセージ編集済み 編集者: 貧乏人 編集日時 2007-10-30 17:50 ]
1

スキルアップ/キャリアアップ(JOB@IT)