質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

2回答

355閲覧

サーバーにファイルが送れません

Ray_Kadokura

総合スコア17

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2018/12/06 03:39

bash

1scp -i ~/.ssh/秘密鍵 送りたいファイル ユーザー名@ホスト名:届け先

とやったら、(意味わかんないですけど)

bash

1 _ _

と言われ、ファイルは送られていませんでした。

何がいけないのでしょうか。

でもついさっきあるファイルを送ったときは普通にできました。
いきなりこうなったのです。そのときに送ったファイルは~/.bashrcだったのですが、これが原因でしょうか?
教えてください。よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

scsi

2018/12/06 03:42

意味がわかるようになってから書こうね
Ray_Kadokura

2018/12/06 03:49

では教えていただけませんか。「 _ _ 」ってどういう意味なんですか?
CHERRY

2018/12/06 04:11

エスケースシーケンスが化けているような感じですが、ターミナルを再起動しても同じ状況でしょうか?
Ray_Kadokura

2018/12/06 06:58

治りました。ありがとうございます。
CHERRY

2018/12/06 07:03

実行したコマンドの詳細がわからないので、発生した原因は不明ですね。 解決したのであれば、回答欄に行った内容を記載して、自己解決で質問を終了させておいてください。
guest

回答2

0

よくわからないうちに解決したとの事ですが、少しでも有意義な内容にする為に原因の推測および対処方法を書きます。

送れない原因

いきなりこうなったのです。そのときに送ったファイルは~/.bashrcだったのですが、これが原因でしょうか?

~/.bashrc を送った後に起きるようになったのならば、おそらくそれが原因ですね。

scp コマンドでリモートホストとの間でファイルをコピーする場合、scp は内部で ssh コマンドを使ってリモートホスト側でも scp コマンドを起動し、その scp コマンドと対話する事でファイルのやりとりを行います。
リモートホストでのログインシェルが bash の場合、scp コマンドも bash を使って起動されますが、scp コマンドの起動の前に ~/.bashrc の内容も実行されます。
この時 ~/.bashrc の中に何かを表示するようなコマンドが有った場合、その出力を scp コマンドが受け取りますが、scp コマンドの出力では無い為正しく解釈できず、エラーとなって scp が行えなくなります。
この時 scp が正しく解釈できなかった内容は端末上に表示されます。

scp が行えるようにするには、この何らかのメッセージをどのコマンドが出しているかを突き止めて、対処してあげる必要があります。

調査方法1: 正しいメッセージの表示

bash

1 _ _

と言われ、ファイルは送られていませんでした。

これは前述の ~/.bashrc の中で出力された内容だと思われますが、おそらくローカルとリモートで文字コード(漢字コード)が違っていて正しく表示出来ない状態だと思います。
この出力が正しく表示できればどのコマンドが出力しているかの大きな手がかりになります。
文字コードの判別、変換にはnkfが便利なのでインストールしましょう。

インストールしたら、まずローカル側でどの文字コードを使っているかを確認する為、以下のコマンドを実行します。

bash

1echo $LANG

これの結果が ja_JP.UTF-8 ならば -w, ja_JP.eucJP ならば -e, ja_JP.SJIS ならば -s が nkf に渡すオプションになります。
nkf に渡すオプションがわかったら、メッセージを実際に変換してみます。

bash

1scp -i ~/.ssh/秘密鍵 送りたいファイル ユーザー名@ホスト名:届け先 2>&1 | nkf -w (UTF-8の場合)

これでメッセージが正しく表示されたら、その内容からメッセージを表示しているコマンドを特定してコメントアウトするなりの対処を行います。

調査方法2: bash のトレースオプションの利用

前述の方法でわからない場合、または nkf をインストールしたくないなどの理由で実行しなかたった場合は、bash のトレースオプションを利用する方法があります。

例として、以下の内容の ~/.bashrc で、echo コマンドが hogefuga を出力しているのを突き止めます。

bash

1HISTFILE=.bash_history 2[[ $PS1 && -f /usr/local/share/bash-completion/bash_completion.sh ]] && \ 3 source /usr/local/share/bash-completion/bash_completion.sh 4 5echo hogehoge 6sleep 1

まず ~/.bashrc の先頭に以下の2行を追加します。(調査が終わったら削除してください)

bash

1exec 2>&1 2set -x

この状態で、何も実行しないコマンド : を ssh 経由で実行します。

bash

1ssh -i ~/.ssh/秘密鍵 ユーザー名@ホスト名 : 2+ HISTFILE=.bash_history 3+ [[ -n '' ]] 4+ echo hogehoge 5hogehoge 6+ sleep 1 7+ :

set -x を実行した事によって、各コマンドを実行する前に実行するコマンドの内容が頭に + を付けて表示されるようになっています。
上記の例では hogefuga を出力しているのは直前の echo コマンドだという事がわかります。
余計な出力を行っているコマンドがわかったら、そのコマンドをコメントアウトして出力が出ないようにすれば scp が使えるようになるはずです。

原因がわかったら、追加した2行を削除してください。追加した2行の出力も scp が動かなくなる原因になります。

投稿2018/12/10 07:52

doda

総合スコア947

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

よくわからないんですが、いろいろやったら治りました

投稿2018/12/08 01:47

Ray_Kadokura

総合スコア17

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問