SSHでProxyCommandを使って多段ログインする
背景
次の図(?)ように,サーバA(踏み台サーバ)が外部ネットワークに公開されており,サーバB, C, ...(内部サーバ)には外部からアクセスできないようになっている環境はよくあります.
家 ----- インターネット ----- サーバA ----- サーバB +-- サーバC +-- etc...
このような環境で,外部から内部サーバにSSHでアクセスする方法として多段ログインがあります. 多段ログインとは,まず公開されている踏み台サーバにSSHで接続し,踏み台サーバから目的のサーバにSSHで接続することです.
しかし,毎回二度もSSHコマンドを叩くのは面倒なので一回コマンドを叩くだけで目的のサーバにアクセスできるようにします.
解決法
解決法には複数あり,ここではProxyCommandを使用した解決法を書きます.
ProxyCommandとはサーバへの接続に使用するコマンドを指定する機能です.(詳しくは$ man ssh_config
に書いてあります)
とりあえず試す
まずはコマンドのみで試してます.
以下のように,SSHコマンドに-o
オプションを付けてProxyCommandを指定します.
$ ssh -o ProxyCommand='ssh -p サーバーAのポート番号 -W %h:%p serverA' serverB
ここで,ProxyCommand内のSSHコマンドに渡している-W
というオプションはホスト名とポート番号を指定するオプションです.
また,ProxyCommandに指定した文字列の%h
と%p
は接続先のホスト名に置換されます.
このコマンドを実行するとserverBに接続することができます.(鍵を指定していないためパスワードを聞かれると思います)
設定ファイルの編集
実際に接続できることを確認できました.
毎回長いコマンドを入力するのは面倒なので~/.ssh/config
に設定を行います.
Host serverA HostName サーバAのIP(ホスト名) User サーバAのユーザー名 Port サーバAのポート番号 IdentityFile サーバAへの接続に使う鍵 Host serverB HostName サーバBのIP(ホスト名) User サーバBのユーザー名 Port サーバBのポート番号 IdentityFile サーバBへの接続に使う鍵 ProxyCommand ssh -W %h:%p serverA
SSHコマンドを使ってアクセスしてみます.
$ ssh serverB
今度は鍵を指定しているためパスワードを入力することなくserverBに接続することができます.
これを応用すると,2段だけでなく3段階ログインといったことも可能です.
SSHでサーバに繋いで"perl: warning: Setting locale failed."が出てきたときの対処法
背景
普段macを使用していますが,先日WindowsのBash on Ubuntu on Windowsからサーバにsshすることがありました.
その際,以下のような警告が出てきたので対処法を書きます.
perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LANG = "C.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C").
原因
ローカル(Windows)のlocale情報がSSHで送られていた.
SSHにはSendEnvという環境変数を接続先サーバに送信する機能があります.
また,SSHには接続先別の設定を記述する~/.ssh/config
と,デフォルト(共通)の設定を記述する/etc/ssh/ssh_config
があります.
今回locale情報が送られてしまったのは後者の設定ファイルにSendEnv LANG LC_*
が設定されていた為です.
解決法
/etc/ssh/ssh_config
を管理者権限で開き,SendEnv LANG LC_*
の部分をコメントアウトすれば解決します.
- SendEnv LANG LC_* +# SendEnv LANG LC_*
位相空間論 #1 - 開集合と閉集合
位相空間論(general topology)について自分が理解してる範囲でまとめます.誤りを見つけた際は,コメントかDMで教えて頂けると嬉しいです.
今回は開集合と閉集合の公理について書きます.
位相空間論
数学における位相空間論(いそうくうかんろん、英: general topology; 一般位相幾何学)または点集合トポロジー(てんしゅうごうトポロジー、point-set topology; 点集合論的位相幾何)は、位相空間の性質やその上に定義される構造を研究対象とする位相幾何学の一分野である。 - Wikipedia
位相空間は,集合に対して「位相(トポロジー)」という構造を導入したものです.
位相とは便利なもので,これにより,点の近傍や点列の収束,写像の連続性,今回書く開集合や閉集合の概念を定義することができます.
定義
開集合を定義する前に,まず内点というものを定義します.
ここでは外点や境界点に関しての説明は行いません.
内点
一言で言うと,点にとても近い点はSに属するというものです.
数式で述べると次のようになります.
例えばとなるような実数に対して,閉区間を考えると,は内点になります.これは,開区間を考えると,となるためです.
開集合
開集合は境界を含みません.
開集合の例として次のようなものがあります.
閉集合
ここで,注意しなければならないことは,開集合でも閉集合でもない集合があるということです.
詳細は省きますが,例えば半開区間は開集合にも閉集合にも属しません.
閉集合は境界を含みます.
閉集合の例として次のようなものがあります.
開集合の公理
閉集合の公理*2
さいごに
今回は,開集合と閉集合について書きました.
英語ではそれぞれ,open setとclosed setといいます.そのままですね.
次に書く記事の内容はまだ決めていません.(というか元々位相のお話する予定なかったので全然まとめてませんでした)
開とか閉とか分かりづらい...
参考書籍
- 作者: 高木貞治
- 出版社/メーカー: 岩波書店
- 発売日: 2010/09/16
- メディア: 単行本(ソフトカバー)
- 購入: 1人 クリック: 49回
- この商品を含むブログ (14件) を見る
「集合と位相」をなぜ学ぶのか ― 数学の基礎として根づくまでの歴史
- 作者: 藤田博司
- 出版社/メーカー: 技術評論社
- 発売日: 2018/03/06
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (3件) を見る
2018-kosen13s-adventcalendar-#23
こんにちは,NotFoundsです.
遅ればせながら,あけましておめでとうございます.
昨年度,Kosen13s Advent Calendarを書くと言って,まだ書いてなかったのでそろそろ書きます.(罪悪感が湧いてきたので)
何か書きますー
— のっふぁ🌵 (@NotFounds8080) November 23, 2018
何書くか決めずに記事を書き始めたのですが,大学に編入してから1年弱たったので振り返ってみます.
春ABC
筑波大学では一年間を春・秋と2つに分け,さらにそれぞれをA・B・Cと5週ずつの3つに分け(春|秋)(A|B|C)モジュールと呼びます.
ここでは,春ABCつまり4月から8月までを振り返りたいと思います.
と言っても特に面白いことはなく,入学したら単位変換して,サークル見学行って,普通に講義受けて,たまに自転車で出かけるみたいなことをしていたら終わりました.
詳しくはこの辺に書いてあります.
あ,春Cにアウトプットをするという目標を立てました.(アウトプット以外の活動も含まれているけど)
結果は,達成率6割程度でした.
内訳として,本を読んだり,課題をするといったことが殆どで,草🌱生やしたりブログ書いたりはできませんでした.
本を読むようになったのは良かったなと思います.
夏期休業
8月の中旬から9月末までは夏季休業です.
前半は帰省し,久しぶりの地元でのんびり過ごして,後半の9月は2週間ずつインターンに行かせていただきました.
また,帰省・インターン中に育てていたミントが枯れてしまいました.😭😭😭
インターンでは,扱ったことない技術や普段見ることができないシステムの裏側を見ることができ,新鮮で非常に良い経験となりました.
秋AB
時系列に箇条書します(めんどくさくなった
・バレーの合宿 楽しかった,膝痛めた ・雙峰祭(学祭) お酒飲んだ,レポート ・配属 ・課題,レポート,課題,レポート ・就活 ・テスト ・就活 ・帰省
ざっとこんな感じでした.
現在
秋Cモジュールです.授業は週に3日7コマしかありません.
あと,希望の研究室(自然言語処理)に配属が決まり,来週からゼミ(?)っぽい活動が始まります.楽しみ😃
秋ABのところにチラッと書いていますが,現在就活をしています.
もともと,大学に進学を決めたとき,入学時点では院進することしか考えていなかったのですが,周りの友人や先輩の影響であったり,インターンシップ,自分のやりたいこと等を考えたときに「自分は研究するより,社会に出てコード書いている方が幸せなのかもしれない」と考え,就職も視野に入れています.(院進を完全に辞めたわけではないです.2019/1/10現在)
まだ,もう少しだけ時間があるので,研究室のゼミに参加したり就活を進めたりしながら,就職するか進学するかじっくり考えてみたいと思います.
さいごに
だらだらと薄っぺらい記事を書きましたが,現在の部分を書きたかっただけです.
P.S. 最近数学したい欲があり,現在は集合.測度をしています.そのうち,代数とか整数論したいです.
冷ややっこを美味しく食べるために必要なもの
必要なもの
- 絹ごし豆腐
- 枕崎産鰹節パック
- おろしショウガ
- 小ネギ
- 醤油
画像
そのうち貼ります
Summer Job @ Drecom
こんにちは,株式会社ドリコムで9/3〜9/14まで10日間Summer Job(インターン)に参加させていただきました!
どんな会社?
主に次の2つの事業を展開しているIT企業です.
- ソーシャルゲーム事業
- 広告メディアサービス事業(広告代理業務、新規メディア開発)
参加するまで
paizaさん経由で連絡が来て,調べてみるとDrecomのプロジェクトでElixir/Phoenixを使っているものがあり,興味が湧いたのでカジュアル面談に行きました. 面談では,事業内容についての説明を受け,自分がしてきたことと,興味がある分野等について話したと思います.
面談後,面接を経て参加が決まりました.
やったこと
具体的なことは言えない🤐のですが,あるプロジェクトのサーバーサイドをRailsで書かせていただきました. 既存機能の拡張についてプランナーさんから仕様を聞き,設計・実装を行いました.
大規模なプロジェクトに触れるのは初めて,かつほとんど経験のないフレームワークだったので戸惑いましたが,設計やコードが洗練されていて,構造の把握がしやすかったです.(自分が汚してしまい申し訳無さが... 🙇🏻🙇🏻🙇🏻
また,自分の設計やコードに対してたくさんのレビューをいただき,もっと精進しないとなと感じました.
毎日,終業時刻前に30分程度メンターの方とミーティングがあり,作業で躓いているところについてや,業務以外のお話する時間がありました.
小さい疑問にも丁寧に答えてくださり,その場で解決することで,その日詰まった作業を次の日に持ち越さないようにすることができ,非常に良かったです.
環境
勝手なイメージで,パーティションで区切られたデスクで黙々と作業をしていようなのを想像していました.
しかし,実際のオフィスは(物理的にも)風通しがよい環境でした.
パーティションのようなものは一切なく,自由に席を移動でき,たまに冗談が飛び交うような環境で働きやすかったです.
設備
社内にアメニティールームや休憩室があり,働きながらリフレッシュしたり休む場所が提供されていました.
また,今回ほとんど利用することはなかったのですが,本社ビルにはカフェがあります.
カフェではバリスタさんがコーヒーを淹れてくださり,僕はコーヒーが苦手なのですが飲みやすくて美味しかったです👍
勉強会
2週間の間に2つの社内勉強会が開催され,どちらにも参加させていただきました.
特に大きな規模の会社になると,複数のプロジェクトがありたくさんの知見が溜まっていくのでアウトプットの場があるのはいいなと思いました.
また,今回の勉強会では技術系イベントのレポート等もあり,自分も参加してみたいなと思いました.
お昼
ほぼ毎日社員の方々とランチがセッティングされていて,会社近くのお店で美味しい食事をいただきました. スーパーエンジニアの方々と技術的な相談や注目している技術についての話ができてよかったです. また,社長とランチをする機会を設けていただき,とても緊張しましたがビジネスについてのお話や考え方を聞くことができ大変勉強になりました.
色々なお話を聞かせていただく中で,再認識したのですが,自分がAcademicな環境にいるうちは,実務とは直接関係ないこと(興味があること)や基礎となる学問,また,新しいことについて学習するの方法(?)を身につけるが大切だと実感しました.
まとめ・感想
今まで,小規模なチーム開発は経験したことがありましたが,企業のプロジェクトのような大規模な開発は未経験でした. プロジェクトの運営やユーザーの調査,DB設計やAPI設計等学ぶことが多かったです.
良い設計・良いコーディングはできませんでしたが,レビューをいただき,それなりにまとまった設計とコードになりました. また,レビューする際にどこを見ればよいか?というようなことに関して知見を得ることができ良かったです.
数十人規模のアジャイル開発の進め方は勉強になりました.
ただ,工数見積もりが難しく,思うように作業が進まず予定していた期限がズレてしまいました.工数見積もりに関しては未だいい方法がわかりません.
2週間あっという間でしたが,たくさんの学びがあり楽しかったです.
短期間のインターンで企業のいろいろな側面を見るには時間が足りませんでしたが,貴重な体験ができたと思います.
今回学んだことを,今後の開発に生かしていけたらなと思います.
おまけ
社内のイベントプラットフォームが社内gitホスティングサービスに公開されており,小さな機能追加のPR(Pull Request)を送らせていただきました.
なんとなく足跡残したいという思いがあり,軽い気持ちでPRを送ったら,最終日前日に嵐のようにレビューが来ました😇
マージされたら嬉しいです.最終日に無事マージされ,Deployされました🤗🎉
謝辞
今回,インターンに参加するにあたり,受け入れてくださったチームの皆様と面談・日程調整,様々なサポートをしていただいた人事の方に感謝します.
本当にありがとうございました.あと,ランチごちそうさまでした!
他の企業についてほとんど知らないのですが,この会社が良すぎたので離れたくないです(小声)
git challengeに参加しました!
こんにちは,NotFoundsです.
先週の土曜日,mixi社が毎年開催しているgit challengeというイベントに参加してきました.
git challengeとは,
gitでやらかしちゃった😜.何もしてないのにgit動かなくなった😇といった状況のリポジトリが与えられるので,すーぱーはっかーのあなたが解決してね🤗
みたいなイベントです.((適当
また,本イベントの大きな特徴として,
- 同様のイベントが他にない
- おひとりさま一回限り
- 学生のみ
といったものが挙げられます. 非常に人気のイベントで,毎年応募者数が多く抽選で落ちてしまうことも多いみたいです.
このイベントのことは以前から知っていたのですが,なにせ昨年までド田舎の鹿児島に住んでいたため,このようなイベントに参加したことはありませんでした.悲しい😭
今回,「せっかくのイベントだし,gitってインストールの仕方くらいなら知ってるし,それにどうせ抽選落ちるやろ〜」みたいなノリで応募したのですが,受かってしまいました🎉
イベントの流れ
起床チャレンジ
前日飲み会だったので朝起きれるか心配でしたが無事チャレンジ成功しました💪
会場まで
千代田線で表参道駅まで行き,青学の隣を歩いて会場まで向かいました. ((キラキラ✨したオーラが漂っていてまぶしかったです.
予定より20分ほど早く会場につき,エントランス前で待っていたら他の参加者さんが話しかけてくれました.
やっぱり大学生はコミュ力高いなぁと思いました.
午前
git challengeに参加する際の注意点やgit challengeのチュートリアルが行われました.
また,社員の方2名のLTがあり,社内のgitの運用等についてお話を聞きました.
お昼ご飯
毎回テーマが決まっており,それに合わせて内容が決まるみたいです.
今日は東京オリンピックが決まった日!
— のっふぁ△ (@NotFounds8080) September 8, 2018
だったらしく,今回のテーマは「和」でした.
「和」に関する複数のお弁当が用意されており,僕は焼肉弁当をいただきました.
また,お昼を食べている間,サポートの社員のお話を聞くことができました.((後に作問者だったと知りました
イベント開始
13:30開始予定でしたが,少し早い13:20分より競技が始まりました.
競技
🤐
おやつタイム
競技中におやつタイムがあったみたいです.こちらもまた,「和」をテーマとしたお菓子が出されていたようですが,競技に夢中で食べるのを忘れていました😭
結果・解説
チームで8完でした.
前半はペースよく解け,ワンチャンあるか?と思ったのですが,後半になるにつれ難易度が高く,解けませんでした.
あとから解説を聞いたら方針はあっていたようですが,まだまだって感じでした...
懇親会
競技も終わり,入賞者を称えたあとは,楽しくお食事です.
夜はガッツリ洋食でした(「和」ということで🍶に🍣だと期待していたのは内緒)
僕は辛いのが苦手なので食べていないのですが,カレーが非常に辛いと評判でした.
また,最近のマイブームなのですが,自分の進路の悩みを社員さんにひたすら相談するっていうのをしているので,この機会にたくさんお話させていただきました.
まとめ
力不足により入賞できませんでしたが,一緒のチームだった方ありがとうございました.
また,このようなイベントを開催してくださったmixi社の方々ありがとうございました!
git はいいぞ〜
おまけ
戦利品です.ありがとうございました! ((個人的にSplatoonっぽいOctocat気に入っています