タグ

tipsとsshに関するmanabouのブックマーク (11)

  • SSH接続を10倍速くするたった3行の設定 - Qiita

    今回は、SSH接続を劇的に高速化する方法をご紹介します。たった3行の設定を追加するだけで、接続時間を10分の1に短縮できます。しかも、2回目以降の接続では認証も自動的に行われるので、パスワードやパスフレーズの入力も不要になります。 要点 .ssh/configファイルのHost *セクションに以下の3行を追加するだけです。 詳しい説明 1. ControlMaster auto この設定で、1つのSSH接続で複数のセッションを共有できるようになります。新しくSSH接続を確立するたびに認証情報を入力し直す手間が省けて、接続がぐっと速くなります。具体的には: 初回の接続時のみ認証が必要 2回目以降は既存の接続を再利用するため、認証プロセスをスキップ パスワードやパスフレーズの入力が不要になり、接続がほぼ瞬時に完了 2. ControlPath ~/.ssh/mux-%r@%h:%p Contr

    SSH接続を10倍速くするたった3行の設定 - Qiita
  • 最強のSSH踏み台設定 - Qiita

    追記:openssh-7.3 以降なら ProxyJump や -J が使えます ホスト名を + で繋げることで多段Proxy接続も簡単に、がコンセプトだったエントリの設定ですが、OpenSSH 7.3 から ProxyJump という設定が使えるようになったので、使えるなら ProxyJump を使う方が健全だし柔軟で使い勝手も良いのでそちらを覚えて帰ることをオススメします。 使い方は簡単で以下のような感じです。多段も行けるし、踏み台ホスト毎にユーザ名やポート番号を変えることも出来ます。 # 1. bastion.example.jp -> internal.example.jp ssh -J bastion.example.jp internal.example.jp # 2. bastion.example.jp -> internal.example.jp -> super-de

    最強のSSH踏み台設定 - Qiita
  • Jenkinsでsshしたらハマった - Drink Beer, Do Something

    リモートサーバでのコマンド実行がコケる Jenkinsだと頻繁にリモートサーバでコマンド実行します.普通は手でリモートサーバにsshログインしてコマンド実行して動くのを確認して,よし,Jenkinsから同じことをさせようとなると思います.このときsshを非対話モードで使うと,Jenkins上では単なる「Shellの実行」を設定するだけでいいので以下のようにやりがちです. ssh user_name@my_remote_server -i key.pem ls -l コマンドがlsなんかだと問題ないですが,ここで,最後のコマンドの部分がリモートサーバのbash環境変数に依存している場合,コケます.bashが非対話型で起動された場合,/etc/profileとか.bash_profileとか.bashrcは読み込まれないからです.実は,Jenkinsというよりはshellの仕様の話です. 手

  • bashrcの設定の読み込まれる順番 - それマグで!

    bashrcが反映されないなーと思ったので調べてみた。 すると、原因は .profile が無かった。 なので .profile にbashrc を読込設定を書いた bashrc読込設定は/.profileに書いておけばいい。(Debianのデフォルトを貰ってきた→後述) このとき、~/.profileに書いて大丈夫か心配になったので調べてみた。 設定に関するファイルの一覧 bash環境変数に関する設定は次のファイルに依って構成されていました。 /etc/profile ~/.bash_profile ~/.bash_login ~/.profile /etc/bash.bashrc ~/.bashrc どの順に読み込まれるか調べてみた。 各ファイルは自分のファイル名だけを出力する設定にして、その他を全部コメントアウトした /etc/profile を空っぽにしてEchoだけして読込順を調

    bashrcの設定の読み込まれる順番 - それマグで!
  • SSHの多重接続について

    tl;dr デプロイツールによっては 同じサーバに SSH で何回もコマンドを実行することがある(ansible とか)。 コマンドごとに毎回コネクション(トンネル)を確立するとオーバーヘッドも大きくなる。 OpenSSH は $HOME/.ssh/config に次の設定を書くことで、接続を多重化(multiplex)することができる。 # $HOME/.ssh/config Host machine1 HostName machine1.example.org ControlPath ~/.ssh/controlmasters/%r@%h:%p ControlMaster auto ControlPersist 1h multiplex 前後の速度差 SSH を使ってリモートサーバで echo コマンドを実行した時の速度差を計測 before multiplex $ time ssh

    SSHの多重接続について
  • OpenSSHのセッションを束ねるControlMasterの使いにくい部分はControlPersistで解決できる - このブログはURLが変更になりました

    OpenSSHには1のコネクションで複数のSSHセッションを束ねて使える機能があります。例えば、~/.ssh/configに Host example.com ControlMaster auto ControlPath ~/.ssh/mux-%r@%h:%pと設定しておくと、最初に接続したsshセッションのコネクション(マスターコネクション)を使いまわし、複数のSSHセッションをマスターコネクションに束ねることができます*1。 主なメリットは以下のとおり。 TCPセッションは1つなのでTCPの同時接続数が制限されているサーバでも複数sshが可能*2 コネクションを使いまわした場合、接続にかかる時間が短い(ssh経由で複数回に分けてコマンド投入とかで時間短縮) コネクションを使いまわした場合、パスワード入力やパスフレーズ入力が不要*3 ですが、ControlMasterとControlP

    OpenSSHのセッションを束ねるControlMasterの使いにくい部分はControlPersistで解決できる - このブログはURLが変更になりました
  • SSH tricks

    SSH is a protocol for authenticating and encrypting remote shell sessions. But, using SSH for just remote shell sessions ignores 90% of what it can do. This article covers less common SSH use cases, such as: using passwordless, key-based login; setting up local per-host configurations; exporting a local service through a firewall; accessing a remote service through a firewall; setting up a SOCKS p

  • Cluster SSHで複数ホストでコマンド同時実行 : しげふみメモ

    2009年01月16日00:40 カテゴリLinux Cluster SSHで複数ホストでコマンド同時実行 複数のホストに対してコマンドを同時に実行できるツール Cluster SSH を試してみました。結構便利そうです。 SourceForge.net: Cluster SSH - Cluster Admin Via SSH 以下がわかりやすいです。 1つのシェルから複数のSSHセッションを同時に実行するツール3種類を試す - SourceForge.JP Magazine クラスタのノードの分だけ別々のxtermが立ち上がり、制御用のウィンドウで入力した内容をすべてのノードに送信できるという仕組みだ。 openSUSE 10.3で試してみました。 インストールは特に迷うことはありません。 Tk と X11::Protocol のperl moduleが必要です。 例えば、node01

    Cluster SSHで複数ホストでコマンド同時実行 : しげふみメモ
  • ssh-copy-id - なんかいろいろ書き込んでみるテスト

    ssh-copy-idコマンドを今さら知ったので、メモ。 何に使うコマンドかというと、sshのクライアント認証で使う公開鍵をサーバー側にコピーするのに使う。 sshでリモートホストに接続する場合、接続先のリモートホストに公開鍵を登録する必要があるが、ssh-copy-idコマンドを使わないと次の手順になる。 ssh-keygen -t dsa →公開鍵と秘密鍵を作成 scp .ssh/id_rsa.pub 192.168.1.16:~ →公開鍵をリモートホストのユーザーのホームディレクトリにコピー ssh 192.168.1.16 →リモートホストに接続。ここでパスワードを入力 mkdir .ssh →ユーザーのホームディレクトリに.sshディレクトリがなければ作成 cat id_dsa.pub >> .ssh/authorized_keys →公開鍵をauthorized_keysファイ

    ssh-copy-id - なんかいろいろ書き込んでみるテスト
  • シェルスクリプトからsshでリモートコマンドを実行する際の注意点 - 矢野勉のはてな日記

    メモ, プログラミングシェルスクリプトからsshで複数のリモートホストにコマンドを投げつける処理を書いてて、いろいろ気がついたことを、あとで自分で調べられるようにメモしておく。 ループからsshでコマンドを投げつけるシェルスクリプトのwhileループ内から、複数のホストへ順番にコマンドを投げつける処理をかいていると、最初のホストにしかコマンドが飛ばない(ループしない)これは、シェルスクリプトのwhileループ自体が、標準入力の読み取りに依存しているのに、sshも標準入力を読み取るのが原因。たとえばこんなループの場合に起きる。 somecommand | while read LINE do ssh user@hostname 'sh yourcommand /dev/null 2>&1 &' done nオプションを付けることで、sshの標準入力が/dev/nullに変わりバックグラウンド

  • root権限で特定のユーザのSSHエージェントを介してgit cloneする方法 - Hello, world! - s21g

    サーバ管理をしていて、root権限が必要なディレクトリに、ファイルをリポジトリからgit cloneしてきたい状況になったので、方法をメモしておきます。 まず状況の確認として、 gitのプロトコルにはsshを使っている リポジトリサーバには、rootユーザでは鍵認証でもパスワード認証でもログインできない リポジトリサーバ、clone先のサーバ双方ともfooというローカルユーザが存在。sshでリモートログインできる という感じです。ユーザ権限でアクセス出来る場所にgit cloneする場合であれば、 こんな感じで済むのですが、ファイルの作成にroot権限が必要な場合、 repoディレクトリを作成出来なくて怒られます。 かといって、rootユーザでgit cloneしようとしても、リポジトリサーバにはrootではログイン出来ないのでcloneできません。 そのような場合には、以下の手順を踏みま

  • 1