追記(2015-11-07)
ここにある方法はもう古くて使えないと思っていい。
一応monoもXQuartzもプロジェクトとしては存在するし、El Capitan用のバージョンも用意されてるが、ここにある方法で私は現時点で動作確認が取れていない。
今日はmacからさくらのVPSにつなげるように設定を行った。
そのための手順を以下に書く。
macでKeePassを使えるようにする
KeePassというのはパスワード管理ソフトで、私は色んなサイトや権限のためのパスワードを管理するのにwindowsではこのソフトを使っていた。でもwindowsとmacで管理を分けると、あちこちにパスワードが散らばって詰みそうだったので、macでも使えるようにしようと思った。
そこでwindowsのexeをmacでも使えるようにするmonoというソフトをmacに導入した。*1ちなみにmacだけのためのソフトではないので、linux系なら割となんでも来いなのでは?(やってないからわからんが)
Xamarinという会社が作っているソフトで、経緯はwikipediaをググれって話なんだけども
14日目: はてなエンジニアブロガー祭り行ってきた - わすれっぽいきみえ
で、会場を貸してくださっていたmicrosoftの方がXamarinのこと(この場合はソフト)を紹介していて、なんかC#すごーいって思った記憶がうっすらある。
とりあえずmonoのMREのパッケージをダウンロードし、展開・おk連打で入る。
これとXQuartzのダウンロード・インストール。
これでwindows exeの実行環境が簡単に入る。
記事自体は古いが
にある方法でKeePassの立ち上げを行うために、KeePassのダウンロードページからPortable版を落としてくる。
このzipを解凍して、中のexeファイルをmonoで読み出す。そのために次のコマンドをたたく。
$ mono /downloaded/path/KeePass.exe
これでKeePassが立ち上がるようになった。
ファイル自体はdropboxに入れてあって、それをKeePassに読ませればwindowsで使ってたパスワードがmacでも読めるようになる。*2
さくらにsshでつなげるようにする
設定についてはさくらのVPS設定でいつもお世話になっている
がとても詳しい。久しくVPSを開いてなかったので、もうさくらのコンパネを開きOSの再インストールを実行した。
なくなって困るものを入れてなかったし。
OSを再インストールした直後だとrootで普通にログインできてしまうので、さっさとポートとかもろもろ塞ぐ。
まずはユーザの作成
$ ssh root@XXX.XXX.XXX.XXX -p 22 Last login: Sat Mar 8 16:37:57 2014 from my_home SAKURA Internet [Virtual Private Server SERVICE] [root@foo ~]# yum update [root@foo ~]# useradd kimikimi714 [root@foo ~]# passwd kimikimi714 Changing password for user kimikimi714. New password: Retype new UNIX password: passwd: all authentication tokens updated successfully [root@foo ~]# su - kimikimi714 [kimikimi714@foo ~]$ exit logout [root@foo ~]# exit logout Connection to foo closed.
この状態だと秘密鍵がなくてもユーザのパスワードだけでログインできてしまう。
公開鍵・秘密鍵の作成と登録
$ ssh-keygen -t rsa -C "kimikimi714@example.com" Generating public/private rsa key pair. Enter file in which to save the key (/Users/kimikimi714/.ssh/id_rsa): [Press enter] (いろいろおkしまくって鍵作る) $ scp -P 22 ~/.ssh/id_rsa.pub kimikimi714@XXX.XXX.XXX.XXX:/home/kimikimi714/. id_rsa.pub 100% 403 0.4KB/s 00:00 $ ssh -p 22 kimikimi714@XXX.XXX.XXX.XXX Last login: Sat Mar 8 18:15:30 2014 from my_home SAKURA Internet [Virtual Private Server SERVICE] [kimikimi714@foo ~]$ mkdir .ssh [kimikimi714@foo ~]$ chmod 700 .ssh [kimikimi714@foo ~]$ chmod 600 id_rsa.pub [kimikimi714@foo ~]$ mv id_rsa.pub .ssh/authorized_keys [kimikimi714@foo ~]$ su - password:
# vi /etc/ssh/sshd_config
#PermitRootLogin yes PermitRootLogin no ... 中略 .... #PasswordAuthentication yes PasswordAuthentication no
[root@foo ~]# service sshd restart Stopping sshd: [ OK ] Starting sshd: [ OK ] [root@foo ~]# exit logout [kimikimi714@foo ~]$ exit logout Connection to foo closed. $ ssh root@XXX.XXX.XXX.XXX -p 22 Permission denied (publickey,gssapi-keyex,gssapi-with-mic). $ ssh kimikimi714@XXX.XXX.XXX.XXX -p 22 Permission denied (publickey,gssapi-keyex,gssapi-with-mic). $ ssh kimikimi714@XXX.XXX.XXX.XXX -p 22 -i ~/.ssh/id_rsa Last login: Sat Mar 8 18:18:18 2014 from my_home SAKURA Internet [Virtual Private Server SERVICE] [kimikimi714@foo ~]$
うん。これでrootログイン不可と鍵認証ができた。次はsudo
やな
sudo使えるようにする
[kimikimi714@foo ~]$ yum list installed | grep sudo sudo.x86_64 1.7.4p5-7.el6 @anaconda-CentOS-201112091719.x86_64/6.2
既に使えるようなので、sudoersの設定だけでよさげ。ここでグループへの追加にはusermod
ではなくgpasswd
を使う。(参考: usermod -G でユーザに新しいサブグループを追加してはいけない - 続・夕陽のプログラマ)
[root@foo ~]# gpasswd -a kimikimi714 wheel Adding user kimikimi714 to group wheel [root@foo ~]# id kimikimi714 uid=500(kimikimi714) gid=500(kimikimi714) groups=500(kimikimi714),10(wheel)
# visudo
## Allows people in group wheel to run all commands # %wheel ALL=(ALL) ALL %wheel ALL=(ALL) ALL
これでsudo
使えるぜ!と息巻いて実行してみたら…
[kimikimi714@foo ~]$ sudo -v ユーザー kimikimi714 は foo 上で sudo を実行できません。すみません。
ファッ!?
すみませんて、いやこちらこそですよw
[kimikimi714@foo ~]$ id uid=500(kimikimi714) gid=500(kimikimi714) 所属グループ=500(kimikimi714) [kimikimi714@foo ~]$ id kimikimi714 uid=500(kimikimi714) gid=500(kimikimi714) 所属グループ=500(kimikimi714),10(wheel)
ふむ。ログアウトするか。
[kimikimi714@foo ~]$ exit logout Connection to foo closed. $ ssh kimikimi714@XXX.XXX.XXX.XXX -p 22 -i ~/.ssh/id_rsa Last login: Sat Mar 8 18:18:18 2014 from my_home SAKURA Internet [Virtual Private Server SERVICE] [kimikimi714@foo ~]$ id uid=500(kimikimi714) gid=500(kimikimi714) 所属グループ=500(kimikimi714),10(wheel) [kimikimi714@foo ~]$ sudo -v [sudo] password for kimikimi714: [kimikimi714@foo ~]$
いけた。
ポート変更とssh_configの設定
sudo vi /etc/ssh/sshd_config
でポート番号を適当な値に変更
# The strategy used for options in the default sshd_config shipped with # OpenSSH is to specify options with their default value where # possible, but leave them commented. Uncommented options change a # default value. #Port 22 Port XXXXX
sshdを再起動して、ちゃんとポートが変更されているか試す
[kimikimi714@foo ~]$ exit logout Connection to foo closed. $ ssh kimikimi714@XXX.XXX.XXX.XXX -p XXXXX -i ~/.ssh/id_rsa Last login: Sat Mar 8 18:18:18 2014 from my_home SAKURA Internet [Virtual Private Server SERVICE] [kimikimi714@foo ~]$
よしよし。次はいっつもhost名とか入れんのタルいんで.ssh/configの編集
Host sakura HostName foo Port XXXXX IdentityFile ~/.ssh/id_rsa
$ ssh sakura Last login: Sat Mar 8 18:18:18 2014 from my_home SAKURA Internet [Virtual Private Server SERVICE] [kimikimi714@foo ~]$
Yeah!
その他: userを消したいとき
タイポしたユーザ名でユーザ作っちゃったので、消さなきゃいけないときがあった。
そういうときは以下のようにする。
$ userdel -r kimikimu714 $ cat /etc/passwd | grep kimikimu714 $ cat /etc/shadow | grep kimikimu714 $ cat /etc/group | grep kimikimu714 $ ls -la /home/ | grep kimikimu714 $ ls -la /var/spool/mail | grep kimikimu714
オプション-r
の意味はユーザディレクトリおよびユーザのメールスプールも削除する、の意味。
rm -rf
みたいなものだと思えばおk。(参考: Linux ユーザーアカウントの削除 - userdel)
userdel
以下のコマンドは本当にユーザが消されたかどうかを確認するため実行した。
今日はここまで。