新規記事の投稿を行うことで、非表示にすることが可能です。
「.コム」の登録情報をmacでwhoisを使って調べる方法
ちゃんとwhois代行ができているか確認するようにしています。
実は、先日まで.コムがすごい安くて買ってみました。
新規登録時にwhois情報の代理をチェックしておくと、以降ずっと無料です。
取得した後に、whois代理になっているかを確認したところエラーになってしまいました。
macのターミナル
$ whois xn--eckwd4c7c5976acvb2w6i.xn--tckwe
whois: xn--tckwe.whois-servers.net: nodename nor servname provided, or not known
日本語ドメイン.コム => xn--eckwd4c7c5976acvb2w6i.xn--tckwe
(このドメインは例です。取得したドメインではありません!)
日本語ドメイン.comとかだと、punycode変換したxn--eckwd4c7c5976acvb2w6i.comで問題なく調べられます。
punycode変換ツールは、日本語JPドメイン名のPunycode変換・逆変換を使っています。
「.コム」の登録情報をmacでwhoisを使って調べる方法
「.コム」は、punycodeの.xn--tckweを利用するのが正解です。
whoisコマンドには、-h引数でホスト名が指定できます。
-h引数で「.コム」のwhoisサーバーを指定することで検索できるようになります。
$ whois -h whois.nic.xn--tckwe xn--eckwd4c7c5976acvb2w6i.xn--tckwe
トップレベルドメインは、こちらで検索できます。
IANA.ORG Root Zone Database
見つけた「.コム」のwhoisサーバー情報です。
「.コム」と同じように、「.みんな」、「.グーグル」などもmacでwhois検索できるようになります。
「.コム」の登録情報をmacでwhoisを使って調べる方法以外にも、直接レンタルサーバーにsshログインすることで確認できたりします。
sshログインできるレンタルサーバーのうち、3つ(エックスサーバー、さくらインターネット、ロリポップ)の挙動を確認してみました。
エックスサーバーはそのまま検索できる!
エックスサーバーにsshログインして「.コム」のwhois検索ができるか確認してみました。
エックスサーバーは引数指定しなくても対応済みです。
$ whois xn--eckwd4c7c5976acvb2w6i.xn--tckwe
[Querying whois.internic.net]
[whois.internic.net]
Whois Server Version 2.0
・
・
さくらインターネット(スタンダード)は、引数で指定が必要です。
% whois xn--eckwd4c7c5976acvb2w6i.xn--tckwe
whois: xn--tckwe.whois-servers.net: hostname nor servname provided, or not known
ロリポップ(スタンダード)は、whoisコマンドがありません。
$ whois xn--eckwd4c7c5976acvb2w6i.xn--tckwe
-bash: whois: command not found
「.コム」の登録情報をmacでwhoisを使って調べる方法のまとめ
今回ご紹介した、
「.コム」、「.みんな」、「.グーグル」などのwhois登録情報を確認できる方法は、
新たにトップレベルの日本語ドメインが追加されても応用できる方法です。
少しの手間、IANA DBで対応するwhoisサーバーを探すして、whois -h で指定するだけです。
今回使ったmacは、2016/9時点で最新のmacOS Sierra 10.12を使っています。
pingやnslookupの名前解決は可能です。でもwhoisで検索できませんでした。
ping xxx.xn--tckwe
dig(nslookup) xxx.xn--tckwe
whois xxx.xn--tckwe
macでもデフォルトで対応してくれると嬉しいですね!
新たにレンタルサーバーを契約しようかご検討中なら、エックスサーバーがおすすめですよ
ロリポップのsshで出来ること ※スタンダードプラン
この記事では、スタンダードプランのsshで何ができるのか、出来ることをまとめています。
ロリポップ!スタンダード SSHで出来ること
ロリポップ!スタンダードプランで契約したサーバにSSHログインし、確認してみました。
bashのバージョンは、「GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu)」、バージョンから察するにlinux redhatの64ビット版のサーバーのようです。
本来であれば、uname等の結果でわかる情報ですが、ロリポップ!のサーバーはかなり厳格にコマンドを選定しています。
また、通常たくさんのライブラリが見える/usr/lib /libなどアクセス権が適切に設定され、ほとんど一般ユーザーから見えなくなっています。
SSHログインでできることは、アップロードしたファイルの展開、ファイル移動、ファイル編集等のファイル操作、phpコマンドの動作確認、gitコマンド、subversionコマンド、sqlite3データベースのメンテナンスなどです。emacsやnanoといったエディタがデフォルトで利用可能です。
wgetコマンドも使えます。
コマンドは厳選されていますが、フォルダに対する操作はある程度自由が与えられています。
~/.sshフォルダを自分で作って、SSHパスワードなしログイン可能です。
できることより、出来ないことを見た方が分かりやすいかもしれません、
- gccコマンドを使ったコンパイルはできません
- unameコマンド、pingコマンドは使えません、見つかりませんでした
ロリポップ!のスタンダードプランで使えるSSHは、
普通にWEBサイト、PHPなサイト、rubyなサイトを構築する用途に最適です!
bashを使ったスクリプト、PHP/Ruby/Python/Perlを使ったスクリプトをクーロンで動かせます
SSHログインで使えるコマンド
- /usr/bin
b2m dig emacs expr gem grep-changelog id mysql od pr python2.7 sabcmd sqlite3 svnadmin tac tty vim xsltproc
clear dir emacs-23.1 find git groups install mysqldump paste printenv rcs-checkin scp ssh svndumpfilter tail unexpand wc yes
comm dircolors emacsclient fmt git-receive-pack gunzip join nano perl printf readlink seq ssh-keygen svnlook tee uniq wget zip
convert dirname env fold git-shell head less nkf perldoc ptx rsync sftp stat svnserve test unzip which
csplit du etags.emacs ftp git-upload-archive htdigest make nl php python ruby sha1sum sum svnsync tr urlgrabber whoami
diff ebrowse expand gctags git-upload-pack htpasswd md5sum nslookup php5 python2 ruby-1.9.3 split svn svnversion tsort vdir xargs - /bin
awk bash chmod csh date egrep false find grep gzip link ls mailx more nano pwd rm sed sleep stty tcsh traceroute uname vi zsh
basename cat cp cut echo env fgrep gawk gunzip hostname ln mail mkdir mv nice readlink rmdir sh sort tar touch true unlink zcat
/usr/local/binにはphp/ruby/python/perlがあります。
ロリポップ!スタンダード SSHログイン有効からログインするまでの方法
ロリポップ!スタンダード SSHログインはデフォルトで無効です。
管理画面からSSHを有効にする手順を踏みます。(と言っても公式のマニュアルを見なくても、ボタンひとつで有効にできます)
sshのポート番号は、デフォルトではありませんでした、そのため、sshコマンドの引数を追加してポートを指定する必要があります。
スタンダードプラン ユーザー専用ページ、WEBツール=>SSHでSSHを有効にします。
SSHログインするSSHコマンド引数はコレです
ローカルPC(ここではMacという前提で説明しています。)
$ ssh -p ポート番号 アカウント@サーバー
パスワードが聞かれます。ユーザー専用ページに表示されているパスワードをコピペしてください。
これでロリポップ!スタンダード SSHログインできます。
ロリポップ!スタンダード SSHパスワードなしでログインする方法
ローカルPC(ここではMacという前提で説明しています。)でid_dsa.pubが存在するか確認します。
$ ls ~/.ssh/
id_dsa.pubがない場合は作ります。
$ ssh-keygen -t dsa
これで、~/.ssh/id_dsa.pubファイルが作られています。
サーバー名、アカウントが長いので省略名でログインする設定をします
ローカルPCでの作業です。
$ vi ~/.ssh/config
以下を追記します。
Host 省略名(半角で入力)
HostName ロリポップ!ユーザー専用ページ SSHのサーバー
User ロリポップ!ユーザー専用ページ SSHのアカウント
Port 接続ポート
ここでは、以下で設定した仮定で進めます。
Host lolipop
HostName sshxxx.xxxx.jp
User xxx.jp-yyy
Port 9999
id_dsa.pubをロリポップ!スタンダードサーバーに転送します。
ローカルPCのid_dsa.pubをロリポップ!スタンダードサーバーに仮転送します。
$ scp ~/.ssh/id_dsa_pub lolipop:~/.
(パスワードを入力します)
仮転送したid_dsa.pubを確定させます
ロリポップ!スタンダードサーバーにsshログインしてください。
(ローカルPC) $ ssh lolipop
(パスワード入力します)
(ロリポップ!)$ mkdir ~/.ssh
(ロリポップ!)$ chmod 700 ~/.ssh
(ロリポップ!)$ mv ~/id_dsa.pub ~/.ssh/authorized_keys
(ロリポップ!)$ chmod 600 ~/.ssh/authorized_keys
シェルは省略ワードなど使えますが、ここではフルで書いています。知っている方は!$とか使ってください。
この状態で、ローカルPC側で新たにterminal(Shell)を起動して、パスワードなしで入力できることを確認します。
$ ssh lolipop
設定ミスがなければ、パスワードなしでそのままロリポップ!にログインできます。
お名前COMの共用サーバーにパスワード入力を簡略化sshログインする方法
2015年6月16日よりSSH接続機能が提供され、ログインできるようになっています。
お名前COMへSSHログインする方法は、お名前COMのマニュアル類を参考にしてください。
お名前COM共用サーバーSDでSSHする際の課題
現在、お名前COM共用サーバーSD-11を契約しています。
- sshでログインすると、~/、ホームディレクトリ下の権限がありません。
~/.cshrc, ~/.bashrc、~/.ssh/などが作成することができません。
現時点では、一般的な公開キーを用いたsshパスワードの省略が行えません - 慣れの問題ですが、ユーザー名が特殊です
$ ssh ユーザー名@sshホスト名
ユーザー名は、sd9999999@gmoserver.jpです
なので、ssh sd999999@gmoserver.jp@ssh99.gmoserver.jpというような感じになります。
個人の環境問題だと思いますが、macからsshログインする際、1回目のパスワード入力を失敗すると
アカウントロック的な状況に陥ってログインできなくなりました。
お名前COMの共用サーバー ちょっとセキュアなsshパスワード省略ログイン方法
先ほど課題で触れたとおり、公開キーを使うSSHパスワード省略ログインはできません。
クライアント側で工夫する方法しかありません。
この記事は、どちらかというとmacやlinuxからお名前COMにsshログインする方に適しています。
Windowsな環境の場合、WinSCPやputtyなどのキーワードで情報を探してください。
(確認は、osx el capitanで行っています)
公開キー以外のsshパスワードを省略する方法は、
expect(shellの対話プログラミング)、sshpass(SourceForge 引数でパスワードを渡せるプログラム)
の2つです。
expectで作ったshellは、環境に依存しやすいので、ここでは、sshpassを利用します。
sshpassのソースは以下sourceforgeにあります。コンパイルしてインストールしてください。
http://sourceforge.net/projects/sshpass/
sshpassの使い方
sshpass -p パスワード ssh ホスト名 -l ユーザ名 -o 'StrictHostKeyChecking no'
実際に実行中のsshpassプロセスは、ps -le等で見ても、パスワードがzzzzというような表示になって秘匿されています。
historyで確認すると、打ち込んだパスワードがそのまま残ってしまいます。
また、shellでパスワードを平文で残しておくのも、なんとなくやな感じがします。
一人しか使わないような環境では、シェルスクリプトにそのまま平文が最も簡単な方法です。
以下方法では暗号化しています、ただ、何者かが自分のユーザーでログインできてしまった場合、暗号化は破られます。なので、ちょっとセキュアな方法です。
スクリプト
sshpassは、~/local/binにインストールしてある状態です。
~/local/bin/mylogin.sh(ファイル名、パスは自由です)
#!/bin/sh
ssh_agent(){
host=$1
user=$2
f=~/.ssh/${user}@${host}.rsa;
PASSWORD=$(openssl rsautl -decrypt -inkey ~/.ssh/id_rsa -in ${f})
~/local/bin/sshpass -p ${PASSWORD} ssh ${host} -l ${user} -o 'StrictHostKeyChecking no'
}
お名前COM sshログインスクリプト(適切なファイル名でお願いします)
ex) ~/onamae-ssh.sh
#!/bin/sh
. ~/local/bin/mylogin.sh
ssh_agent ssh99.gmoserver.jp sd999999@gmoserver.jp
これでスクリプトの準備は完了です。chmod +xで実行可能にしておきます。
sshログインパスワードの暗号ファイルの用意
opensslを使ってパスワードファイルを作成します。
~/.ssh/id_rsaファイルを使います。あらかじめ作成してください。
パスワードファイルは、~/.ssh/ユーザ名@ホスト名.rsaという形で準備します。
(これ本当はどこでも、なんでもいいです、ただ先のスクリプトと対になっているので、変更する場合はスクリプトも変更してください)
$ echo 'パスワード' | openssl rsautl -encrypt -inkey ~/.ssh/id_rsa > ~/.ssh/ユーザ名@ホスト名.rsa
これで暗号化したパスワードができました。
パスワードは、ssh_agent()処理で復号されます。
使い方
~/onamae-ssh.sh
でお名前COM 共用サーバーSDにログイン出来ます。