• 締切済み

vagrant ssh でトンネリング

初めて質問させてもらいます。 開発環境をクラウド化する前提で試しにAWSのEC2をvagrantから起動するように設定中です。 ウチの会社は社外に対して直接SSH接続することを許可しておらず、踏み台サーバ(192.168.100.100)を経由してSSHをする必要があります。 現在固定のEC2インスタンスに対してのSSH接続は.ssh/configには以下のように記述し、[ssh ec2.dev.test]としたときに自動でトンネリングするようにしています。 ``` HOST gateway hostname 192.168.100.100 User test HOST ec2.dev.test hostname ec2-***-***-***-***.ap-northeast-1.compute.amazonaws.com User ec2-user ProxyCommand ssh gateway -W %h:%p IdentityFile '~~~~~~~~~~~' ``` vagrant ssh をしたときに自動でssh/configと同じ動きをしてくれるようにするか、オプションでトンネリングできるようにしたいです。 EC2インスタンスは[vagrant up]したときに生成されるため、IP固定ではないため動的にしたいです。 ググってみても「vagrant内にあるMySQLにアクセスする」系統ばかりが出て有力な情報にたどりつけませんでした。 アドバイスをいただけると助かります。 よろしくお願いいたします。 PS.Vagrantfileには以下のように記述してあります。 ``` VAGRANTFILE_API_VERSION = '2' Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = 'dummy' config.vm.provider :aws do |aws, override| aws.access_key_id = '~~~~~~~' aws.secret_access_key = '~~~~~~~' aws.keypair_name = '~~~~~~~' aws.ami = '~~~~~~~' aws.instance_type = 't2.micro' aws.security_groups = [ 'default' ] aws.region = 'ap-northeast-1' override.ssh.username = 'ec2-user' override.ssh.private_key_path = '~~~~~~~' end end ```

みんなの回答

  • doraneko66
  • ベストアンサー率11% (535/4742)
回答No.1
beni-x10a
質問者

お礼

ありがとうございます。 なかなか上手く行かないのですがもう少しあがいてみます。

関連するQ&A

  • windows vagrant ssh 管理者で

    数か月前にcentos7を勉強していたのですが、気が変わってずっと触っておらず最近になってまた再開し始めました。全くの素人ですが、よろしくお願いします。 以前windows環境でvagrantをインストールしsshでcentosに接続するにはputtyを使わないとssh接続できないという認識でいました。しかし、最近再開してvagrantやvirtualhostをバージョンアップすると、今度は逆にputtyが接続できず、vagrant sshでwindowsでもあっけなくssh接続できています。vagrantのアップグレードでputtyなどのsshクライアントは不要にしたからでしょうか? あと、本題は次の疑問なんですが、vagrant sshでssh接続してインストールなどしようとすると管理者権限でないというエラーが出ます。vagrant ssh接続で管理者でログインするにはどうすれば良いでしょうか? ↓を試しましたが、次のエラーがでてssh接続もできなくなりましたした。 http://dqn.sakusakutto.jp/2013/08/windows_vagrant_ssh.html C:\\Users\\名前/.ssh/config: line 1: Bad configuration option: \377\376h C:\\Users\\名前/.ssh/config: terminating, 1 bad configuration options

  • vagrant up がタイムアウトしてできない

    Windows 10 と VirtualBox 5.0.16、Vagrant 1.8.1 の組み合わせで、「 bento/centos-6.7-i386」の box を使用して vagrant up しようとしていますが、いつまでたっても ==> default: Waiting for machine to boot. This may take a few minutes... default: SSH address: 127.0.0.1:2222 default: SSH username: vagrant default: SSH auth method: private key のまま進みません。 しばらく経つと次のエラーメッセージが表示されます。 Timed out while waiting for the machine to boot. This means that Vagrant was unable to communicate with the guest machine within the configured ("config.vm.boot_timeout" value) time period. vb.gui = true にして確認すると起動が完了してログイン画面まで進んでいます。 config.vm.boot_timeout の数字を増やしてみても変わりません。 Vagrantfile はほぼ初期状態です。 BIOS画面で「Intel Virtualization Technology」の項目はなかったのでおそらく対応していません。そのためゲストOSには 32-bit 版のものを選択しています。 他に何の問題が考えられますか?

  • AWSに対し SSH接続

    AWS EC2契約後インスタンス起動。 セキュリティ設定 問確認済。 キーペアを成。pemファイルをダウンロード。 ・状況 AWSで作成したpemをロードし、秘密鍵を作成。 それを使用し、AWSヘルプを参照しながら、puttyでSSH接続をおこなおうとしたところ、 ユーザ名を入力後、「 Server refused our key 」というメッセージが Puttyで表示されSSH接続できませんでした。 https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/putty.html を参照済。 SSH接続を試した時のホスト名、ポート番号は間違っていません。 どの部分を確認したらよいでしょうか?

  • ssh-keygen.exe -A とは?

    windows10同士でSSH通信をしたいのでOpenSSHをダウンロードしました。 参考にしたサイト(https://dev.classmethod.jp/cloud/aws/aws-windows-sshd/)では、SSHキーを設定するときに ssh-keygen.exe -A を実行せよと書いてあったのですが、 (1)この-Aはどういうオプションなのでしょうか。 (2)こういったオプションの意味を(今回の場合に限らず一般に)コマンドプロンプト上で表示させるにはどうすれば良いのでしょうか。 help ssh-keygen.exeとすると/?を使えと言われ、 ssh-keygen.exe /? とするとtoo many argumentsと出て内容を調べることができませんでした。 よろしくお願いします。

  • SSHに繋がらない

    SSHから接続できず、ユーザー認証でエラーになってしまいます。 何かわかる方がいらっしゃいましたら、どうか少し教えて頂けないでしょうか。 OSはCentOS 6.2 です。 -------------------------------------------------------------------- ■サーバー -------------------------------------------------------------------- ★設定 # vi /etc/ssh/sshd_conf > Port 22 > Protocol 2 > AllowTcpForwarding yes > GatewayPorts no > MaxAuthTries 6 > MaxSessions 10 > > ServerKeyBits 1024 > StrictModes yes > > SyslogFacility AUTHPRIV > LogLevel DEBUG3 > > PubkeyAuthentication yes > PasswordAuthentication no > PermitEmptyPasswords no > AuthorizedKeysFile .ssh/authorized_keys > > PermitRootLogin without-password > UsePrivilegeSeparation yes > > Subsystem sftp /usr/libexec/openssh/sftp-server > X11Forwarding no ★鍵を作成 # su user1 $ ssh-keygen -t rsa -b 1024 $ Generating public/private rsa key pair. $ Enter file in which to save the key (/user1/.ssh/id_rsa): $ Enter passphrase (empty for no passphrase): $ Enter same passphrase again: $ Your identification has been saved in /user1/.ssh/id_rsa. $ Your public key has been saved in /user1/.ssh/id_rsa.pub. $ The key fingerprint is: $ 50:4f:72:d4:0a:d6:d2:24:98:96:7b:xx:xx:xx:xx:xx user1@myhost.com $ The key's randomart image is: ★鍵の名前を変更 $ cd /home/user1/.ssh/ $ cp id_rsa.pub authorised_keys $ rm id_rsa.pub ★パーミッション確認 $ drwxr-xr-x. root root /etc/ssh $ -rw------- root root /etc/ssh/sshd_conf $ drwxr-xr-x. user1 user1 /home/user1 $ drwxr-xr-x user1 user1 /home/user1/.ssh $ -rw-r--r-- user1 user1 /home/user1/.ssh/authorised_keys ★再起動 # service sshd restart # Stopping sshd: OK ] # Starting sshd: OK ] -------------------------------------------------------------------- ■クライアント -------------------------------------------------------------------- Windows7 teraterm ポート:22 SSHバージョン:SSH2 ユーザー名・パスフレーズを入力し、「RSA/DSA鍵を使う」に上記で作った「id_rsa」プライベート鍵をセット。 エラーメッセージ:「SSH2自動ログインエラー:ユーザー認証が失敗しました」 -------------------------------------------------------------------- ■ ログ(/var/log/secure)抜粋 -------------------------------------------------------------------- Aug 6 17:57:26 localhost sshd[21819]: debug1: temporarily_use_uid: 0/0 (e=0/0) Aug 6 17:57:26 localhost sshd[21819]: debug1: trying public key file /user1/.ssh/authorized_keys Aug 6 17:57:26 localhost sshd[21819]: debug1: restore_uid: 0/0 Aug 6 17:57:26 localhost sshd[21819]: debug1: temporarily_use_uid: 0/0 (e=0/0) Aug 6 17:57:26 localhost sshd[21819]: debug1: trying public key file /user1/.ssh/authorized_keys Aug 6 17:57:26 localhost sshd[21819]: debug1: restore_uid: 0/0 Aug 6 17:57:26 localhost sshd[21819]: Failed publickey for user1 from yyy.yyy.yyy.yyy port 58193 ssh2 Aug 6 17:57:26 localhost sshd[21819]: debug3: mm_answer_keyallowed: key 0x7fc196d47cf0 is not allowed Aug 6 17:57:26 localhost sshd[21819]: debug3: mm_request_send entering: type 22 Aug 6 17:57:26 localhost sshd[21819]: debug3: mm_request_receive entering Aug 6 17:57:26 localhost sshd[21820]: debug2: userauth_pubkey: authenticated 0 pkalg ssh-rsa Aug 6 17:57:26 localhost sshd[21820]: debug3: Wrote 68 bytes for a total of 2633 Aug 6 17:57:26 localhost sshd[21820]: Connection closed by yyy.yyy.yyy.yyy ※yyy.yyy.yyy.yyyは、teratermでアクセスしたIPです。 -------------------------------------------------------------------- ■備考 -------------------------------------------------------------------- 「nmap localhost」は「22/tcp open ssh」ですが、 グローバルIPで「nmap xxx.xxx.xxx.xxx」すると、22番がリストに出ませんでした。 ルーター、iptables、ともにポートは開けています。 (念のため、「iptables」と「system-config-firewall」は停止しています。) ログを見ると、sshdまで到達しているように見えるのですが・・・。

  • phpのssh2_auth_pubkey_file

    linuxで自宅サーバーを建てています。 この度、phpで外部のsshサーバーへphpでアクセスする必要に迫られたので、やってはみたのですが、どうにもうまくいきません。。 phpinfo()では、 SSH2 support     enabled extension version 0.11.0-dev libssh2 version 1.0 banner SSH-2.0-libssh2_1.0 remote forwarding enabled hostbased auth     enabled polling support enabled publickey subsystem enabled と、sshは使えるようになっています。 実際にスクリプト内で $conn = ssh2_connect($host, 22, array("hostkey" => "ssh-rsa, ssh-dss")); を実行すると、trueが帰ってきます。 ですがそのあとに、 $pub = ssh2_auth_pubkey_file($conn, "username", "public.ppk", "private.ppk", "path"); をスクリプト内で実行すると、 Warning: ssh2_auth_pubkey_file() [function.ssh2-auth-pubkey-file]: Authentication failed for username using public key in /var/www/html/user/test.php on line 50 とエラーが出ます。結果はもちろんfalseになります。 public.ppkのエラーのように見えるのですが、、、WinSCPというソフトを使い、public.ppkとprivate.ppkもそのまま同じものを使って接続ができます。 ググってはみたのですが、どの時点でエラーになっているのか見当がつきません。。。 お分かりの方があられましたらどうぞお知恵をお貸し下さい。よろしくお願いします。

    • 締切済み
    • PHP
  • AWSのEC2のwebサーバを踏み台にしたい

    AWSのEC2インスタンスに関しての質問です。 現在AWSを利用していて、操作がわからないので、どなたかご教授お願いします。 VPCの中にパブリックサブネットとプライベートサブネットを作成しました。 パブリックサブネットの中にApacheをインストールしたwebサーバを作り、 プライベートサブネットの方にMySQLを入れたいです。 NATインスタンスも作成して、Apacheのインストールも終わったので、 webサーバーを踏み台にして サブネットにあるインスタンスにMySQLをインストールするところです。 しかし、うまく踏み台に出来ず、セキュリティグループに問題はないと思うので、 キーペアーの問題かなとおもっています。 なんかSSHでアクセスするにはwebサーバーに秘密鍵を置く必要があるようなのですが、 その作業が出来ません。 マックを使っていてターミナルから以下のコマンドを打ち込んでいます。 scp -i XXXXX.pem ec2-user@ ec2-YY-YY-YY-YY. ap-northeast-1.compute.amazonaws.com:~/ どこかコマンド間違っているでしょうか? "Permission denied (publickey). lost connection"というメッセージが出ているので パーミッションかなと思い chmod 400 XXXXX.pemを実行してもなにもかわらず… ここで詰まっています。 原因がわかる方、もしよければ教えていただけると助かります。 よろしくお願い致します。

  • YMAHA RTX1200 外部からSSHできない

    RTX1200が外部から操作できません。 TeraTermでSSH接続すると、「接続が拒否されました」となります。 [HOSTNAME].netvolante.jpに対してSSH 上記グローバルアドレスに対してSSH どちらも繋がりませんでした。 ローカルで接続すると、問題なく繋がります。 環境は、インターネットルーターとして稼動しており VPN等はしていません。 固定IPではないので、netvolante-dns を登録しています。 configを記載しますので、よろしくご教授くださいm(._.)m login user [USERNAME] encrypted [KEYID] security class 1 off on ip route default gateway pp 1 ip lan1 address 192.168.18.254/24 pp disable all pp select 1 pp keepalive use off pp always-on off pppoe use lan2 pppoe auto connect on pppoe auto disconnect on pp auth accept pap chap pp auth myname [USERID] [PASS] ppp lcp mru on 1454 ppp ipcp ipaddress on ppp ipcp msext on ppp ccp type none ip pp mtu 1454 ip pp nat descriptor 1 netvolante-dns hostname host pp server=1 [HOSTNAME].netvolante.jp pp enable 1 nat descriptor type 1 masquerade tftp host any dhcp service server dhcp server rfc2131 compliant except remain-silent dhcp scope 1 192.168.18.11-192.168.18.99/24 expire 240:00 maxexpire 240:00 dns server pp 1 dns private address spoof on sshd service on sshd listen 22 sshd session 3 sshd host any sshd host key generate [KEYID] sshd client alive on 60 3

  • sshのトンネリング

    puttyを使って、sshサーバを踏み台にして目的のサーバAにアクセスする方法はいろいろなページで紹介されていますが、いくつか疑問があるので質問させてください。 ・踏み台にするsshサーバではiptableなどで踏み台からサーバAフォワードするといった設定が必要なのでしょうか? ・クライアントがlinuxの場合はputty以外の選択肢があるのでしょうか? よろしくお願いします。

  • SSH (トンネリング) について

    現在滞在している家のホームネットワークにパケットモニタが導入されているため、何とかしてプライベートにネットを利用したいと思っています。そこで自分なりに調べたところ、SSH、もしくはhttptunnnelを利用して解決できるというようなことが書かれてあるページがいくつかありました。 しかし、少しその仕組みでわからないことがあります。ローカルコンピュータから例えばSSHで外部のFTP,SMTP,HTTPサーバに接続するとして、一旦ローカルで変換したデータをどこで再度変換し直すのでしょうか? PuTTYなどはクライアントソフトウェアですよね?ということはもしかして、ルータがSSHサーバをサポートしている必要があるのでしょうか?もし、ルータの設定を変更できない場合は不可能ということでしょうか? 1.FTPサーバ SMTPサーバ HTTPサーバ ↑ ↓ 2.ルータ ↑ ↓ 3.ローカルコンピュータ 詳しい方どうぞよろしくお願いいたます。