Armadilloフォーラム

scpの使い方(設定)

sakashita_spc

2019年5月31日 22時11分

お世話になります。

Armadillo 840/atmark-distの環境で、make menuconfigでopensshからscpを有効にした環境で利用しています。
この環境で、teratermのssh-scpのコマンドは動作しています。

ただ、シェルからscpを利用するエラーとなり、以下のようなエラーとなります。

[root@armadillo840-0 (pts/0) /mnt/image]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:11:0C:23:00:B5
inet addr:192.168.0.100 Bcast:0.0.0.0 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2189689 errors:0 dropped:1518754 overruns:0 frame:0
TX packets:21795 errors:0 dropped:0 overruns:0 carrier:8
collisions:0 txqueuelen:1000
RX bytes:164532447 (156.9 MiB) TX bytes:19341836 (18.4 MiB)
Interrupt:142 DMA chan:ff

自分にscpでコピー

[root@armadillo840-0 (pts/0) /mnt/image]# scp 20190522-111924.tar root@192.168.0.100:/mnt
/usr/local/bin/ssh: No such file or directory
lost connection
[root@armadillo840-0 (pts/0) /mnt/image]#

以下のエラーメッセージで止まってしまいます。
/usr/local/bin/ssh: No such file or directory
lost connection

/usr/local/bin/
にsshをコピーしたら動作したのですが、

環境変数か何かの設定で、コピーしなくても動作するのでしょうか?

コメント

中村です。

> [root@armadillo840-0 (pts/0) /mnt/image]# scp 20190522-111924.tar root@192.168.0.100:/mnt
> /usr/local/bin/ssh: No such file or directory
> lost connection
> [root@armadillo840-0 (pts/0) /mnt/image]#
>
> 以下のエラーメッセージで止まってしまいます。
> /usr/local/bin/ssh: No such file or directory
> lost connection
>
> /usr/local/bin/
> にsshをコピーしたら動作したのですが、
>
> 環境変数か何かの設定で、コピーしなくても動作するのでしょうか?

何年も前の話になりますが、
Armadillo-420でscpを使ったときの作業メモに、
次のようなものありました。
* scpとsftpの内部に埋め込まれているsshへのパスが/usr/local/bin/sshになっていたので、
* configureに"--prefix=/usr"を付け、romfsでのインストール先も/binから/usr/binに変更した。

800シリーズも400シリーズも同じatmark-distを使いますので、
原因はこれと同じだと思います。

この当時のatmark-distのopensshは4.3p2でしたが、
今のatmark-distのソースを見ると、
4.3p2と6.0p1が選べるようになっています。
デフォルトは6.0p1かな?

openssh-4.3p2/INSTALLに次の記述があります。
* This will install the OpenSSH binaries in /usr/local/bin, configuration files
* in /usr/local/etc, the server in /usr/local/sbin, etc. To specify a different
* installation prefix, use the --prefix option to configure:

6.0p1のINSTALLでも、この部分の記述は同じです。

また、今のopenssh/Makefileも4.3p2のころとほぼ同じで、
当時(4.3p2のとき)のMakefileの私の修正は次のとおりです。

--- user/openssh/Makefile-orig
+++ user/openssh/Makefile
@@ -1,37 +1,37 @@
 
 SRC_DIR = openssh-4.3p2
 
 CONF_BUILD = $(shell $(SRC_DIR)/config.guess)
 CONF_HOST = $(shell $(SRC_DIR)/config.sub $(CROSS:-=))
 CONF_OPT = 
 CONF_OPT_MISC = 
 
 BIN_y =
-BIN_$(CONFIG_USER_OPENSSH_SSH)        += /bin/ssh
-BIN_$(CONFIG_USER_OPENSSH_SSHD)        += /sbin/sshd
-BIN_$(CONFIG_USER_OPENSSH_SSHKEYGEN)    += /bin/ssh-keygen
-BIN_$(CONFIG_USER_OPENSSH_SSHKEYSCAN)    += /bin/ssh-keyscan
+BIN_$(CONFIG_USER_OPENSSH_SSH)        += /usr/bin/ssh
+BIN_$(CONFIG_USER_OPENSSH_SSHD)        += /usr/sbin/sshd
+BIN_$(CONFIG_USER_OPENSSH_SSHKEYGEN)    += /usr/bin/ssh-keygen
+BIN_$(CONFIG_USER_OPENSSH_SSHKEYSCAN)    += /usr/bin/ssh-keyscan
 BIN_$(CONFIG_USER_OPENSSH_SSHKEYSIGN)    += /usr/lib/openssh/ssh-keysign
 BIN_$(CONFIG_USER_OPENSSH_SSHRAND)    += /usr/lib/openssh/ssh-rand-helper
-BIN_$(CONFIG_USER_OPENSSH_SSHAGENT)    += /bin/ssh-agent
-BIN_$(CONFIG_USER_OPENSSH_SSHADD)    += /bin/ssh-add
+BIN_$(CONFIG_USER_OPENSSH_SSHAGENT)    += /usr/bin/ssh-agent
+BIN_$(CONFIG_USER_OPENSSH_SSHADD)    += /usr/bin/ssh-add
 BIN_$(CONFIG_USER_OPENSSH_SFTPSERVER)    += /usr/lib/openssh/sftp-server
-BIN_$(CONFIG_USER_OPENSSH_SFTP)        += /bin/sftp
-BIN_$(CONFIG_USER_OPENSSH_SCP)        += /bin/scp
+BIN_$(CONFIG_USER_OPENSSH_SFTP)        += /usr/bin/sftp
+BIN_$(CONFIG_USER_OPENSSH_SCP)        += /usr/bin/scp
 
 all: build
 
 $(SRC_DIR)/Makefile:
     (cd $(SRC_DIR); \
      ./configure --build=$(CONF_BUILD) --host=$(CONF_HOST) \
-                 $(CONF_OPT) $(CONF_OPT_MISC));\
+        --prefix=/usr $(CONF_OPT) $(CONF_OPT_MISC));\
 
 build: $(SRC_DIR)/Makefile
     make -C $(SRC_DIR) LD=$(CC)
 
 romfs: build
     [ "$(CONFIG_USER_OPENSSH_SSHD)" != "y" ] || \
         mkdir -p $(ROMFSDIR)/usr/lib/openssh
 
     for target in $(BIN_y); do \
         $(ROMFSINST) $(SRC_DIR)/`basename $$target` $$target; \

--
なかむら

中村です。

先ほどのMakefileのパッチについて。
何年か前の作業メモをそのまま張り付けましたけど、

>  $(SRC_DIR)/Makefile:
>      (cd $(SRC_DIR); \
>       ./configure --build=$(CONF_BUILD) --host=$(CONF_HOST) \
> -                 $(CONF_OPT) $(CONF_OPT_MISC));\
> +        --prefix=/usr $(CONF_OPT) $(CONF_OPT_MISC));\

の部分は変更せずに、
Makefileの先頭近くにある
> CONF_OPT =
> CONF_OPT_MISC =
のどちらかに"--prefix=/usr"を設定した方がいいですね。

--
なかむら

中村様
情報ありがとうございます。

現状は、ソースの修正が必要ということですが、ありがとうございます。

少し検討してみます。