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

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

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

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

SSH

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

Q&A

解決済

1回答

2081閲覧

ssh_configを使用した多段接続およびコマンド実行のシェル化

MTRORY

総合スコア1

bash

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

SSH

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

0グッド

0クリップ

投稿2021/10/05 09:23

前提・実現したいこと

sshコマンドで踏み台サーバ、踏み台サーバ経由で別のサーバへ接続し
コマンドを発行するシェルを組みたいと思っています。
多段接続はssh_configを利用します。

発生している問題・エラーメッセージ

bashで「ssh HostA」と入力、実行すると正常にHostAに接続され、
configでRemoteCommandに指定した"hostname"、"pwd"の結果が表示されます。
しかし、これをシェル(sh)として作成し実行すると
「bash test.sh
: nodename nor servname provided, or not known」
となり接続されません。

手動でコマンド実行すると正常に動作しますが、シェルで実行すると
エラーとなる原因がわかりません。

該当のソースコード

config

1Host bastion 2 Hostname xxx.xx.xx.xx 3 user ***** 4 IdentityFile **.rsa 5 Port 10022 6 IdentitiesOnly no 7 TCPkeepAlive yes 8Host HostA 9 Hostname xxx.xx.xx.xx 10 User +++++ 11 IdentityFile **.pem 12 IdentitiesOnly no 13 TCPkeepAlive yes 14 ProxyCommand ssh -W %h:%p bastion 15 RemoteCommand hostname;pwd

sh

1#!/bin/bash 2ssh HostA

試したこと

configが置かれているディレクトリにシェルを配置して実行しましたが、
結果は変わらずエラーとなりました。

補足情報(FW/ツールのバージョンなど)

当方、mac、Linux系は初級者レベルです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

手で打ちこむ ssh HostA というコマンドと、シェルスクリプト上の ssh HostA で差が出ることは通常考えられません。
ということは、別コマンドと認識されているのではないでしょうか? ありがちなのは、シェルスクリプトファイルの改行コードがマズいとか。

od -tcxxd あるいは hexdump といったコマンドで、シェルスクリプトファイルの中身、特に改行コード部分を見てみてください。

投稿2021/10/05 16:34

angel_p_57

総合スコア1672

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

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

MTRORY

2021/10/06 04:05

ご回答ありがとうございます。 私も差異が出るとは全く思っておりませんでした... 改行コードを確認し、再実行後結果をお伝えさせていただきます。
MTRORY

2021/10/08 08:44

angel_p_57様ご指摘のとおりでした。 改行コードが\r\n(CRLF)になっていたので、\n(LF)に修正したところ正常動作しました。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問