nDiki : SSH

2012年2月6日 (月)

今日のさえずり: 「嫁 Auth」って authorization の方だよね。認証とか言ってる人夫婦関係ヤバすぎ。

2012年02月06日

  • 09:33 もう雨降ってるじゃない。 @ 渋谷駅 (Shibuya Sta.)にタッチ! http://t.co/UdUQW5UT
  • 10:39 昨晩、Android 用テキストエディタとして Jota Text Editor インストールしてみた。Dropbox コンボでしばらく使ってみる。
  • 11:32 「嫁 Auth」って authorization の方だよね。認証とか言ってる人夫婦関係ヤバすぎ。
  • 15:10 referral marketing っていう言葉があるんだ。
  • 15:46ネットサービスに問い合わせしたら、X-Mailer: TECHNOMARK MAIL v1.90 なメールで回答をいただいた。
  • 15:51 テクノマークのサイトの導入事例に「株式会社はてな様」が掲載されていたので伏せる必要無かった。はてなさんテクノマークメール使ってるんだ。
  • 15:53 そういえばコールセンター/CRM デモ&コンファレンス2011 in 東京(第12回)で「テクノマークFAQ」を見たんだけれど、その時は普通のツリー型の FAQ システムだなっていう印象だった。
  • 21:24 DVD コンポの MD 部がイカれかけてるみたい。もう MD 修理とかねー。他各所調子悪くなってきてるし。あ、コンポジットAVケーブル買って iPad 2 つなげば、まだしばらくいけるかも。
  • 22:15 iPhone用 コンポジットAVケーブルがタイムセールで 1,780円か。 http://t.co/aZYfdc8Q
  • 22:19 注文した! RT @Naney: iPhone用 コンポジットAVケーブルがタイムセールで 1,780円か。 http://t.co/aZYfdc8Q
  • 23:16 QuickSSHd 起動して XperiaSSH 接続。build.prop をオリジナルに戻す。
  • 23:38 ウホ、ようやくソフトウェア更新できた。1バイト書き換えただけでも駄目だったのね。
  • 24:02 root 残ってたので、そのまま再度 build.prop いじってシャッター音無音化。めでたしめでたし。
[ 2月6日全て ]

2012年3月8日 (木)

特定の Git リポジトリだけ読み書きできる SSH 鍵を作る

サーバ上の特定の Git リポジトリのみにアクセスできる SSH 鍵を作ってみた。

具体的にいうと、SSH 鍵を作って、さくらのレンタルサーバ上に dotfiles 用 Git リポジトリを作ってそこだけを読み書きできるように設定した。今回は Gitosis とかそういう大袈裟なのは使わないない方向で。

サーバ上に Git リポジトリを作る

まずサーバに SSH で入ってホームディレクトリの下に Git リポジトリを作成。

 $mkdir -p /home/naney/var/git/dotfiles.git
 $cd /home/naney/var/git/dotfiles.git
 $git --bare init

特定の Git リポジトリだけにアクセスできる git-shell ラッパーを用意する

通常の git-ssh は特定のリポジトリだけアクセスを許可するとかできない。 なのでさきほど作った Git リポジトリのみアクセスできるようなラッパーを用意する。

 #!/bin/sh

 repo=$(eval echo $(echo ${SSH_ORIGINAL_COMMAND} | cut -d' ' -f2))
 if [ "x${repo}" != "x/home/naney/var/git/dotfiles.git" ]; then
   echo "No access granted to reporitory ${repo}" 1>&2
   exit 1
 fi

 /home/naney/local/git/bin/git-shell -c "${SSH_ORIGINAL_COMMAND}"

これをサーバ上で /home/naney/local/bin/git-shell-dotfiles という名前で保存し実行権限をセットしておく。 なお Git は ~/local/git の下に以前インストールしておいてある。

複数のディレクトリを指定できるようにするとか、そういのはよしなにどうぞ。

ローカルホスト上で専用の SSH 鍵を作ってサーバに送る

 $cd ~/.ssh
 $ssh-keygen -C dotfiles -f id_rsa.dotfiles
 $ssh-copy-id -i ~/.ssh/id_rsa.dotfiles naney@example.sakura.ne.jp

サーバ上の authorized_keys を修正する

さきほどの ssh-copy-id で、サーバ上の ~/.ssh/authorized_keys の最後に新しい鍵の行が追加されている。この行の先頭に以下を追記する。

command="/home/naney/local/bin/git-shell-dotfiles",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty

これでこの鍵で接続した時は git-shell-dotfiles のみが直接実行できるようになる。

なおシェルをフルには使わせてくないけれど、任意のディレクトリの Git リポジトリの読み書きができても良いのであれば直接 git-shell を指定する。

command="/home/naney/local/git/git-shell -c \"$SSH_ORIGIAN_COMMAND\"",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty

ローカルホスト上の ~/.ssh/config を編集

config ファイルに

 IdentityFile ~/.ssh/id_rsa.dotfiles

を追記し、この鍵も使えるようにしておく。

clone してみる

きちんとできていれば

 git clone naney@example.sakura.ne.jp:/home/naney/var/git/dotfiles.git

とすることで clone できることを確認。またサーバ上の他の場所に作ったリモートリポジトリにアクセスができないようになっていることをチェック。(テストする時は他の SSH 鍵で接続されないように .ssh から他の鍵を削除する)。

別の端末で

~/.ssh/id_rsa.dotfiles を適宜別の端末にコピーし、~/.ssh/config に IdentityFile を書き込めば、同様に git clone できるようになる。

[ 3月8日全て ]

2012年3月13日 (火)

先週末に Bitbucket と GitHub サインアップした

プライベートなリモート Git リポジトリを使えるように設定したんだけれど、実はローカル側で22番ポートで外に出れないというオチがついた。

ということで無料でプライベートリポジトリのもてる Buitbucket を使ってみることに。 username を最初 Naney にしたけど UNIX 系的にぽくないよねということでやっぱり naney に変えたという以外はあっさりと。

SSH でも HTTPS でもどちらでも接続できるので22番ポート問題も解決。ちょっと遅いかなと感じる以外はいい感じ。

あとついでに GitHub という SNS にも登録しておいた。

[ 3月13日全て ]

2013年3月1日 (金)

UnisonWindowsLinux で双方向ファイル同期 with Plink

Windows 上で作成・更新したファイルをサクッと Linux 上に反映させるのに、やっぱり Unison File Synchronizer を使うことにした。Windows 上の Unison から SSH 経由で Linux 上と同期させる構成ってしたことなかったな。ちょっと調べつつ設定。

Windows

Unison-2.40.102.zip をダウンロードしてきて C:\Uers\Naney\local\Unison-2.40.102 として展開。テキスト版(CLI 版)を使いやすいように unison.exe という名前に変える。

SSH 経由の接続については PuTTY についている Plink を使うことにした。OpenSSH とはちょっと違うので下記のようにバッチファイル C:\Uers\Naney\local\Unison-2.40.102\plinkunison.bat を作る。

 @c:\Users\Naney\local\PuTTY\plink.exe -l naney -ssh remote.example.com unison -server

同期先のホスト remote.example.com にアカウント naney で SSH 接続して unison をサーバとして起動するというバッチファイル。

次に Unison 同期設定を書いたプロファイルファイル c:\Users\Naney\.unison\test.prf を作る(テスト用)。内容は以下。

 root = c:\Users\Naney\unisontest
 root = ssh://naney@remote.example.com/home/naney/unisontest

 sshcmd=c:\Users\Naney\local\Unison-2.40.102\plinkunison.bat

 times = true
 fastcheck = yes

双方の unisontest ディレクトリを同期する設定になってる。

Linux

最新の OCaml (Unisonビルドに必要)と Unison を取ってくる。

 wget http://caml.inria.fr/pub/distrib/ocaml-4.00/ocaml-4.00.1.tar.gz
 wget http://www.seas.upenn.edu/~bcpierce/unison//download/releases/stable/unison-2.40.102.tar.gz

あとは以前の インストール手順 と同じ流れでインストール

実行

Windows のコマンドプロンプトから

 unison test

で同期できることを確認。

あとは実際の同期したいディレクトリのペアにあったプロファイルファイルを作っていけば OK。

[ 3月1日全て ]

2013年12月25日 (水)

Android 端末から SSH port forwarding 経由で IRC 接続する

AndroidSSH port forwarding アプリ

現時点で最新版が2010年10月7日アップデートの 1.7.1 とちょっと古いんだけれど、過去に使った経験がある SSH クライアントの ConnectBot を使う。

まずは「接続ホスト」の設定で port forwarding するホストへの SSH 接続できるように設定する。またあわせてその接続ホストのメニューから「ポート転送の編集」を選び「ポート転送の追加」で、

  • 鍵の名前: (空)
  • タイプ: ローカル
  • ソースポート: Android 端末上の適当なポート番号 (A)
  • 転送先: <SSH 接続先からみた IRC サーバホスト名>:<IRC サーバのポート番号>

を指定する。あとは ConnectBot で SSH 接続をすれば、別途 IRC クライアントアプリから 127.0.0.1 のポート番号 (A) に接続して IRC が使えるようになる。

AndroidIRC クライアント

とりあえず3つ試してみた。

  • 接続先は Tiarra
  • 40個弱チャネルに join している
  • IRC クライアントを接続すると、各チャネル毎に数十件過去ログを送る設定にしてある

この条件だと、有料だけれど Android IRC が一番良かったのでこれを使うことにする。


[ Android アプリレビュー ]

[ 12月25日全て ]

2013年12月27日 (金)

今日のさえずり: 亭主元気で留守がいい年内最終日を含意

2013年12月27日

[ 12月27日全て ]

2014年1月27日 (月)

USB メモリとかもう使わないけれど必要になったとか

USB メモリ (USB フラッシュメモリ)とかもうずっと使ってなくて。普通に Dropbox とか Evernote とか Google ドライブとか Bitbucket とか SSH + Unison で sync とかで済んじゃうので。

昔は買うときに速度なのなんなのでいろいろじっくり選んだりしていたものだけれどねぇ。今でも PC 間のファイルのやりとりでメジャーに使われているのだろうか?

今回は某楽器用に USB メモリ用意する必要があるということらしいので、新調しようかなと思うのだけれど、その用途以外には使わなさそうだし回数もあまり使わないんじゃないかと思うので、動作確認が取れているものから普通に安めのを選んで買おうと思う。

[ 1月27日全て ]

2014年2月11日 (火)

踏み台サーバ経由の SSH 接続設定

~/.ssh/config を設定する

ssh が -W オプションを使える場合:

 ForwardAgent yes

 Host <実際に入りたいホスト名>
  ProxyCommand ssh <踏み台でのユーザ名>@<踏み台ホスト名> -p <踏み台 SSH ポート番号> -W %h:%p

ssh の -W オプションではなく netcat を使う場合:

 ForwardAgent yes

 Host <実際に入りたいホスト名>
  ProxyCommand ssh <踏み台でのユーザ名>@<踏み台ホスト名> -p <踏み台 SSH ポート番号> nc -w 6000 %h %p

ssh-agent する

接続前に ssh-agent に秘密鍵を登録しておく。

 ssh-agent bash
 ssh-add ~/.ssh/<private-key>

自分は keychain を使っているので .profile で

 /usr/bin/keychain ~/.ssh/<private-key-1> ~/.ssh/<private-key-2> ...
 source ~/.keychain/${HOSTNAME}-sh

している。

接続する

  ssh <実際に入りたいホスト名>

~/.ssh/config で ForwardAgent を設定していなければ、

  ssh -A <実際に入りたいホスト名>

参考

[ 2月11日全て ]

2014年2月14日 (金)

KVIrc で IRC over SSH

今日は Android 端末で外出先から IRC over SSH でチェックしていた。去年末にチョイスして設定した ConnectBot + Android IRC で。

でふと家に帰ったら、そういえば Debian GNU/Linux 機からの IRC over SSH する設定作っていなかったので設定しておいた。

最近 Linux BOX で直接 IRC 見ていなかったんだけれど何がいいのかな。とりあえず久しぶりに Riece いれてみたけれど最初うまくつながらなくて(設定の :coding で utf-8 とするところを utf8 としていたのが原因)、つながったらつながったで Emacs がフル回転で重くて駄目だったので別のにすることにした。 Konversation を試してみたけれど、Tiarra に接続した時に Tiarra の Log::Recent が送ってくれる過去ログをうまく処理できないみたいなので自分の場合イマイチだった。別に試してみた KVIrc では大丈夫だったのでしばらくこれを使ってみることにした。

SSH port forwarding 設定の方は ~/.ssh/config で

 Host irc
   HostName <踏み台 SSH サーバ名>
   User <踏み台 SSH ユーザ名>
   Port <踏み台 SSH ポート番号>
   LocalForward 6667 <踏み台の向こうの IRC サーバ名>:6667

と書いておく。

ssh -f -N irc とすれば踏み台の向こうの IRC サーバ(あるいは Tiarra)にトンネルができるので、 127.0.0.1:6667 に KVIrc 他の IRC クライアントから接続すれば OK。

[ 2月14日全て ]

2014年3月1日 (土)

iOS デバイス用 IRC クライアントとして LimeChat をチョイス

お祭り IRC チャネルを家でチェックするのに PC に張りついているのもアレだ。 Xperia GXインストールしてある Android IRC + ConnectBot でもチェックできるのだけれどこちらはバッテリ的に常時つけておくのもアレ。ということで iPod touch 5th にも IRC クライアントを入れておいて、こちらでモニタしておこうかなと。

IRC クライアントアプリは TwitterFacebookLimeChat を薦められたのでこちらをチョイス。Tiarra に接続した時の送られる過去ログもきちんとさばけた。

iOS だと IRC クライアントアプリとは別に SSH アプリを実行し続けておくのが難しいようなので、iOS デバイス上で SSH port forwarding するのはやめておいて、 PC 側で SSH port forwarding をゲートウェイとして立ち上げておいてそこを経由することにした。

PC 側では以下のような設定を ~/.ssh/config に追加。GatewayPorts を yes にしておくことで port forwarding を開いた PC 以外の端末からもポートにつなげられるようになる。

 Host ircgateway
   HostName <踏み台 SSH サーバ名>
   User <踏み台 SSH ユーザ名>
   Port <踏み台 SSH ポート番号>
   LocalForward 6668 <踏み台の向こうの IRC サーバ名>:6667
   GatewayPorts yes

PC 上で ssh -F -N ircgateway とすれば踏み台のむこうの IRC サーバ(あるいは Tiarra)にトンネルができるので、 <PC のアドレス>:6668 に iPod touch 5th 上の LimeChat から接続すれば OK。

今日のさえずり: お祭りにきました。 @ 株式会社ミクシィ

2014年03月01日

naney:12845589463

[ 3月1日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

※内容は個人的見解であり所属組織とは関係ありません。

月別インデックス
Process Time: 0.063864s / load averages: 0.36, 0.41, 0.36
nDiki by WATANABE Yoshimasa (Naney)
Powered by DiKicker