LoginSignup
0
0

定時帰る術-RHEL9からのSCPについて

Posted at

REHL9からは、SCPが非推奨になり、廃止じゃない、廃止じゃない
なので、RHEL9を作って、検証してみようと思う。

検証

OSのバージョンは9.3

Red Hat Enterprise Linux release 9.3 (Plow)

■ 送信側(何回も):

[root@test9-1 tmp]# scp rhel-9.3-x86_64-dvd.iso 192.168.100.42:/var/tmp/                                                                                                 14% 1505MB 375.2MB/s   00:22

■ 受信側:

まずは、ファイルがちゃんととんできた。

[root@test9-2 tmp]# ll rhel-9.3-x86_64-dvd.iso
-rw-r--r-- 1 root root 1580400640  2月  3 09:29 rhel-9.3-x86_64-dvd.iso

って、詳細も見てみよう。
Modify/ChangeとBirthのが同じじゃないことがわかった
なので、SFTPを使っている可能性が高い
ここで、SCPとSFTPの違いことが現れた
SFTPは、前回の転送が中断された場合、中断されたところから再開できる
SCPは、単純に新しい転送するだけなので、上書きになる

(「2024-01-29」にもやったので、「Birth」が今日の日付になっていないけど、結論には影響しないと思う)

[root@test9-2 tmp]# stat rhel-9.3-x86_64-dvd.iso
  File: rhel-9.3-x86_64-dvd.iso
  Size: 1574895616      Blocks: 3075968    IO Block: 4096   通常ファイル
Device: fd00h/64768d    Inode: 405280      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2024-01-29 13:24:33.746254258 +0900
Modify: 2024-02-03 09:06:27.389337241 +0900
Change: 2024-02-03 09:06:27.389337241 +0900
 Birth: 2024-01-29 13:24:33.746254258 +0900

プロセスも見てみよう。

■送信側
「3347」でSFTPを使っていることがわかった。
(「901」だけど、scpコマンドがbashから実行され、「egrep "ssh|scp"」で表示されない)

[root@test9-1 ~]#  ps -efww | egrep "ssh|scp"
root         845       1  0  1月29 ?      00:00:00 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
root         889     845  0  1月29 ?      00:00:00 sshd: root [priv]
root         900     889  0  1月29 ?      00:00:00 sshd: root@pts/0
root         969     845  0  1月29 ?      00:00:00 sshd: root [priv]
root         971     969  0  1月29 ?      00:00:00 sshd: root@pts/1
root        3311     845  0 09:03 ?        00:00:00 sshd: root [priv]
root        3313    3311  0 09:03 ?        00:00:00 sshd: root@pts/2
root        3346     901 17 09:05 pts/0    00:00:00 scp rhel-9.3-x86_64-dvd.iso 192.168.100.42:/var/tmp/
root        3347    3346 32 09:05 pts/0    00:00:01 /usr/bin/ssh -x -oPermitLocalCommand=no -oClearAllForwardings=yes -oRemoteCommand=none -oRequestTTY=no -oForwardAgent=no -s -- 192.168.100.42 sftp
root        3349    3314  0 09:05 pts/2    00:00:00 grep -E --color=auto ssh|scp

■受信側
受信側も同じく、SFTPを使っているね。

[root@test9-2 ~]#
[root@test9-2 ~]# ps -efww | grep ssh
root         856       1  0  1月29 ?      00:00:00 sshd: root [priv]
root         868     856  0  1月29 ?      00:00:00 sshd: root@pts/0
root         969       1  0  1月29 ?      00:00:00 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
root       14082     969  0 09:06 ?        00:00:00 sshd: root [priv]
root       14085   14082 26 09:06 ?        00:00:01 sshd: root@notty
root       14086   14085 16 09:06 ?        00:00:01 /usr/libexec/openssh/sftp-server

おもしろいこと

ここでは、おもしろいことができる。
なんだというと、sshサーバ側の設定で、sftpが無効できる。
無効された場合、sftpが使えなくなって、通常のscp(sftp使わず)に戻るかというおもしろい検証ができるわけ。

早速受信側にSSHD設定を変更し、やってみよう。
変更前後のdiifは↓
(viやサービスの再起動なども書くのは、面倒くさいから割愛)

[root@test9-2 tmp]# diff /etc/ssh/sshd_config_orig /etc/ssh/sshd_config
123c123
< Subsystem     sftp    /usr/libexec/openssh/sftp-server
---
> #Subsystem    sftp    /usr/libexec/openssh/sftp-server

■送信側
もう一度SCPしてみると、エラーがでた

[root@test9-1 tmp]# scp rhel-9.3-x86_64-dvd.iso 192.168.100.42:/var/tmp/
root@192.168.100.42's password:
subsystem request failed on channel 0
Connection closed

振り返り

  • 9系でSCPを使うなら、受信側にはsftpを有効にする必要
  • 9系でネットワークが不安定の環境でもSCPが使える
  • 8系でsftpが無効になっている場合、9系で設定踏襲にするとSCPが使えないのは要注意
  • 8系でも9系でも、scpはsshdのポート経由でファイル転送するのが変わらないので、ネットワーク的には変更なし

以上

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0