Tag sshを表示しています。
2019.10.28 月
SSHの接続はいろいろセキュリティー上面倒な部分なので、そこらの部分含めると結構テクニカルなことになってしまうので割愛。 ポートの変更 既存のsshd_configのバックアップとっておきます。 # cd /etc/ssh # cp -p sshd_config sshd_config.org ポートを変更します。コメントアウトしてある場合は、外してください。 #Port 22 ↓ Port 2222 保存してからsshd -tで構文チェックしてください。 再起動。既存ポートでは接続できなくなるので十分注意してください。 # systemctl restart sshd.service
2019.10.19 土
Ansibleをまだ使ったことがない人が基本的な使い方ができるようになるまで解説します。 SSHでホストに接続できるようにしておく Ansibleの実行ユーザーとSSHの実行ユーザーを同じにしておくことを前提に、対象hostにSSHで接続できるようにしておきます。いつものように.ssh/configに接続情報を書いておきます。その接続情報をAnsibleで使うことになります。 接続先のホスト情報はインベントリ(在庫リスト)と呼ばれていますが、これは、Ansibleが複数のhostに対して実行できるため、こういった呼び名になっています。Ansibleが各hostへ接続するためには常にこのインベントリを使います。 対象ホストが複数台あるときは複数のHost情報をconfigに設定しておいてくださ...
2019.10.19 土
AnsibleでSSHの基本的な設定をします。ホストに接続できるようになっていることを前提としています。接続シていない場合は、対象のマシンに接続しておいてください。 Ansibleのインストールと基本的な使い方 SSHの設定 SSHの設定は、 チェック (ドライラン) $ ansible-playbook --check -i inventory/hosts sshd.yml 実行 ansible-playbook -i inventory/hosts sshd.yml Ansible でSSHのセキュリティ設定
2019.9.30 月
Compute EngineのメタデータからSSHKeyを登録する。 VMインスタンスを作成する。 FWの設定をする。
2019.9.16 月
CentOS7でapacheを動かしている環境です。PHPは7.2.17で動いています。 laravel5でtinkerを実行すると以下のようなエラー(Warning) $ php artisan tinker PHP Warning: Module 'ssh2' already loaded in Unknown on line 0 ssh2が二重に読み込まれているっぽいので、エクステンションの部分を検索してみる。/etcあたりを検索。 $ find ./etc -type f | xargs grep "ssh2.so" ./php.d/ssh2.ini:extension=ssh2.so ./php.d/20-ssh2.ini:extension=ssh2.so どっちかが無駄っぽい気...
2018.12.5 水
Remote-FTP 仕組み的には非常に単純でローカルにあるファイルを更新するごとにリアルタイムで同期してくれるものです。サーバー上のファイルを編集するというのは事実上ダミーで即時同期といった仕組みです。結果サーバー上のファイルを触っているのと同じ感覚になります。 設定手順 Packegeをインストール 接続したいプロジェクトファイルのrootにいく。 Atomを再起動してからFTP設定したいプロジェクトを開いてから「パッケージ」->「Remote-FTP」-> 「Create SFTP config file」。ここで.ftpconfigファイルで接続情報の雛形が作成されます。 ftpconfigファイルを書き換える { "protocol": "sftp", "host": "examp...
2018.11.12 月
CGP(GCE VMインスタンス)のSSH接続方法です。インスタンス作成が成功したらブラウザーウィンドウからSSH接続できるようになっています。これは結構便利は便利なんだけど、LOCAL PCの普通のSSHクライアントとかで鍵認証でアクセスした方が長い開発の中では便利なので、ブラウザーウィンドウでのコマンド操作は初期構築の場面やクライアントからSSHアクセスできなくなったとき(FWの設定などを失敗した場合)ってことになるかと思います。 Google Cloud SDKのインストール Google Cloud SDK ドキュメント 「Cloud SDKのインストーラ」をダウンロードします。GoogleCloudSDKInstaller.exeというファイルが落ちてくるのでダブルクリックしてイン...
2018.7.17 火
全然使う用途がないんですが、ときどきこういう公開鍵が送られてきます。 ---- BEGIN SSH2 PUBLIC KEY ---- Comment: "rsa-key-20180101" ADDAB3NzaC1yc2EAABCDBJQAAAIBQ5cXFWwodlNv0GxavqchaBphe444q9bK2g7nl f8/Yt6p9xK5YxwwML+lJzROe3S7gL5MrOCeyBalwH9i2MiD9cp+TpDD9XjVB9lqh zKbwZdqd4RcAUhdTzzUUbjnL/O1XJuAb3+VOoookqn0UlUgy4WnCHG01WE1Q1Pum 123456== ---- END SSH2 PUBLIC KEY ---- これ、SECSH形式です。OpenSSL...
2018.6.27 水
プロと言えどもエラーは出ます。いろんな環境で仕事するので。 $ ssh foo@example.com Permission denied (publickey). まずはsecureを見ます。 tail -f /var/log/secure Jun 27 13:44:46 hostname sshd[32175]: User repos not allowed because account is locked Jun 27 13:44:46 hostname sshd[32175]: input_userauth_request: invalid user repos [preauth] Jun 27 13:44:46 hostname sshd[32175]: Connection c...
2017.9.12 火
最近のクラウドサーバーはSSHのコンソールが管理画面にあったりするのでよいですね。SSH接続できなくなったからといってデータセンターに行くことももうないです。 設定の前にサーバーの通信を遮断しているものを全部フリーにしておく。 SSHの設定の切り分けのためにサーバーにデフォルトで設定してあるファイヤーウォールなどは予めすべて切りにしておきましょう。セキュリティ・ポリシーはその後丁寧に設定しましょう。 で、最初にこれらは全部切りにしておく。 SULinux iptables Firewall (CentOS7からの新種) hosts.allow/hosts.deny SULinux vi /etc/selinux/config SELINUX=disabled (*1)サーバー再起動必要 ip...
2017.5.30 火
SSHの設定はポリシー的なところ大きいので設定の仕方というご案内はできないんですが、だいたいこんなルールでやってます。 Rootのログインは基本禁止。*但し鍵認証+IP制限が可能であればOK。問題は鍵の管理になります。 パスワード認証は基本禁止。鍵認証推奨。*とはいえ「なんでパスワードでログインできないの?」って言われます。 ポートは22じゃない方がいい。4桁ぐらいの使っていないポート。 SSH1とかは使わない。 あとはデフォルトのままでいいと思う。 インストールと設定 CentOS7のデフォルトかどうかわからないけど、クラウドサーバとかVPNとかだと、OpenSSH_6.6.1p1がインストールされているっぽい。これちょっと古いです。 最新にしたい方はOpenSSHを最新にバージョンアップ...
2017.5.29 月
CentOS6のOpenSSHが古い問題でいろいろ大変です。 CentOSのデフォOpenSSH(5.3p1)はちょっとアレなんで最新版(7.1p1)をコンパイルしてみたでかなり詳しく正確に書いてくれているのでなになんですが、ちょっとリマインドで書いておきます。 今回既存のSSHが5.3で7.5にバージョンアップしたという感じです。CentOS6やRedhad系だったらそこそここのやり方でOKな筈。 OpenSSH_5.3p1 ↓ OpenSSH_7.5p1 しかし結果からいうとtelnetや最近のクラウドサービスのコンソール的なものでSSH以外で接続しておかないとちょっと怖い感じがあります。 とはいえきちんと設定しればSSHの再起動で接続は切断されますが、すぐにSSHログインができるように...
2017.4.5 水
鍵のペアを作成する際にコメントに名前とかEmailとか入れておくとちょっと手間ですが誰がログインしたのかわかるようになります。 sshのsecureログのカスタマイズ vi /etc/ssh/sshd_config #SyslogFacility AUTH ↓ SyslogFacility AUTHPRIV #LogLevel INFO ↓ LogLevel VERBOSE ログ確認 tail -f /var/log/secure こんな感じでフィンフガープリントがとれます。 Apr 5 12:00:45 hostname sshd[4819]: Received disconnect from 123.456.789.000: 11: disconnected by user Apr 5 ...
2017.3.26 日
普通のクラウドサーバーとかVPSとかだったら最初からSSHが入っているのでほぼSSHの初期設定は必要なのですが、ここではセキュリティー上、パスワード認証を不可にして秘密鍵の接続のみということにします。個人的にはrootをよくつかうのでrootの接続は秘密鍵+IP制限でよかろうと思います。鍵の設定とかはこちら参考にしてください。 SSHの設定 パスワードのログイン禁止 パスワードのログインを禁止する cd /etc/ssh/ cp -p sshd_config sshd_config.org vi sshd_config PasswordAuthentication yes ↓ PasswordAuthentication no systemctl restart sshd これでパスワードで...
2017.1.4 水
以前のOSと比べても全くやり方変わらないのですが、いろいろとちょっと違ったりするので書いておきます。(違わないかも) インストール インストールはこれだけでOKです。Ubuntuならサーバー自体をクライアントとして使う場合もあるかと思うのでopenssh-clientも一緒に入れておくとよいと思います。 apt-get -y install openssh-server openssh-client なんか設定中にいろいろやりすぎて失敗しちゃった場合は、 apt-get -y remove openssh-server openssh-client で一度削除してからもう一度インストールしなおすとよいと思います。 インストールした時点で起動させてみる # /etc/init.d/ssh re...
2016.11.10 木
くそみたいに頻繁に接続するのにパスワードを覚えない輩はSSHKeyのパスフレーズなしの秘密鍵でもって接続するのがよいです。くそみたいなラッパーを書いている人もいるけど、普通に.ssh/config使ったほうがやりやすいです。 SSH鍵の作成 SSHの鍵の作成と登録は準備しておきます。パスワードなしで鍵のペアを作成します。それからサーバー側のauthorized_keysに公開鍵を登録しておく。Githubの場合はコンパネから同様に公開鍵を登録しておく。Settingから「SSH and GPG keys」という項目から登録できます。 SSHで普通に接続できるか確認 まずは普通にssh接続できるか確認します。 ssh git@github.com -i /PATH/SSHKEY.pem PTY...
2016.10.27 木
ちゃんと設定しているつもりなのに繋がらないという時のエラーメッセージ集です。 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! クライアント側の/Users/ユーザ名/.ssh/known_hostsに古い接続情報が残っている場合にこのエラーが出ます。「リモードホストのアイデンティファイする方法が変わりました」ということで、known_hostsの情報とホスト側の新しい情報を照らし合わせると合ってなかったということです。known_hosts内の接続しているホスト名行を削除するか、中身をすべて削除すると新しいフィンガープリントを発行して接続できるよ...
2016.10.12 水
ひっさびさに同期の設定したら全然できなくてかなり参ったので、もう基本からやり直しみたいな感じでの備忘録です。なんだかんだでCentOS7にする人もいないし専用サーバーもCentOS6だし今回もCentOS6でやりました。 これ初心者がやろうとしたら意味わからないんじゃないかなと思いつつも、自分でも相当に忘れてしまっていたのでざっと基本的な流れをおさらいします。 特に説明も何もないとは思いつつも複数のWEBサーバー何かの同期を取る際には結局リアルタイムでミラーリングすることになります。ロードバランサーによる振り分けなどでWEBサーバーの冗長化を伴うとずべてのWEBサーバーの内容は全く同じでなければなりません。やり方としてはすべてのWEBサーバーにNASなんかをマウントしちゃって…というの1番楽...
2016.10.10 月
Coccinellidaのダウンロード 以前にCoccinellidaを使ってみたら原因不明でつながらなかったのでしばらく使っていなかったのですが、久々に使うと普通に使えました。2019-04-18時点でCurrent Version – 0.7です。できるだけ新しいものを使った方がよいでしょう。至るところにダウンロードサイトがあるので、特に問題ないかと思います。 https://sourceforge.net/projects/coccinellida/files/ おそらく公式ページと思われるCoccinellidaのホームページ ダウンロードするとCoccinellida.appというアプリケーションファイルが出てくるので、とりあえずはアプリケーションフォルダに移動しておき...
2016.10.4 火
cronが設定されているかどうか確認する $ crontab -l で現在のcron設定が表示されます。cronはユーザー単位で設定されるので、スーパーユーザーの場合はrootがcronを設定することになりますので注意。設定が初めての場合、または何もない場合は、「no crontab for <ユーザー名>」と言われます。 $ crontab -l SHELL=/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/var/lib/gems/1.8/bin RAILS_ENV=production # m h dom mon dow command */30 * * * * perl /h...
2016.9.21 水
SSHはリモートホストをコントロールする通信方法ですが、言ってみれば相手先のサーバーにログインしてしまうと相手先のサーバー内の環境において作業をするということで…つまりはlocal環境で作業していることになります。remotehostにログインすると自分自身はlocalhostになる。ややこしいですが、そういうことです。 しかし、こちら側(localhost)からあちら側(remotehost)をリモート側としてコントロールすることはできるか?というとできます。 例えばこんな例を考えてみてください。 MySQLをDumpする。 tarでアーカイブする。 SCPで転送する。 tarを展開する。 restoreする。 この一連の動作をcronで行おうとするとき、1〜3はlocalhost側で作業...
2016.8.4 木
findでファイル名を検索 findはファイル名を検索します。ほんとにごく頻繁に使う便利なコマンドです。ディレクトリとファイル名を指定して検索しますが、例によってfind / -name “*”こういうコマンドはナンセンスです。検索したいディレクトリに移動してその下位ディレクトリを再帰的に検索するのかベターかと思います。 $ find . -name "*.html" ファイル数を数える ファイル数を数えるコマンドとかあったかもわからないけど、面倒なので書きだして行数数える。diffとる時なんかはこうやって書き出して比べてみるといいです。余分なファイルとか足りないファイルがあったりなかったり。 $ find . -name "*.html" &gt; html...
2016.6.9 木
OSの確認(Linuxディストリビューション) CPUスペックの確認 メモリ容量の確認 HDD容量確認 Apacheの設定確認(設定情報、文字コード、モジュール) SSHの確認 MTAの確認 MySQLの確認 Perlのバージョン確認(Perlモジュールの確認(インクルードパスを調べる)) PHPのバージョン確認 ログインシェルの確認 OS確認 Debian GNU/Linux $ cat /etc/debian_version 4.0 Ubuntu あるいは、 $ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=8.04 DISTRIB_CODENAME=hardy DISTRIB_DESCRIPTION="Ubuntu 8.0...
2016.5.9 月
ブランチの作成 $ git branch NEWBRANCH 現在のブランチ一覧 $ git branch NEWBRANCH * master 作業ブランチを変更 $ git checkout NEWBRANCH Switched to branch 'NEWBRANCH' ブランチをpushする $ git push --set-upstream origin NEWBRANCH
2016.4.14 木
ln -s ./top/index.html ./index.html ln -s <実体ファイルパス> <シンボリックリンクのファイルパス>という風になっています。-sオプションを忘れずに。 毎回忘れるんだけど、手前が実体ファイル、後ろがリンク。
2016.4.11 月
ppk形式がかなり鬱陶しい今日このごろです。 id_rsaからppk puttygen.exeを起動 [Load] をクリックしてid_rsa をロード ロードできたら、[Save private key] をクリックしてppkファイルを保存
2016.3.22 火
SSHとFTP SSH接続はWEB製作なんかに携わっている人でも以外に知らないというか使ったことがないということがあって、一般的に広まってしまったのはFTP接続なのです。実際にシステム関連の仕事をやっているとFTPなんていう接続プロトコルは必要ないです。なくなってしまっても全然差し支えない。でもSSHがなくなってしまうとこれはもう世界のネットワークが死んでしまうという代物というのがSSH接続です。 SSHがFTPと何が違うのかというと、 通信が暗号化される 鍵認証でパスワード認証なんかよりも強力(すぎる) ファイル転送は予備的な機能で、基本はコマンド送信のプロトコル WinSCPなんかでファイルの転送をしている人も多いかと思いますが、あれは内部でSSH接続でSCPコマンドというコピーコマンド...
2016.3.20 日
何も準備なしにいきなり接続したら、 $ ssh sampleuser@example.com Permission denied (publickey). なので接続できるようにする設定です。予めSSHサーバーが構築されていて、sampleuserアカウントがあるという前提での話になります。 SSHのエラーについてはこちらを御覧ください。 秘密鍵と公開鍵の生成 $ ssh-keygen -t rsa -b 4096 -C "hoge@example.com" Generating public/private rsa key pair. Enter file in which to save the key (/Users/sampleuser/.ssh/id_rsa): /Users/sa...
2016.3.11 金
rsyncはとても便利です。開発環境の内容を一発で本番環境にアップロードするとかいうときにはとても便利です。Gitでpullするのもいいけどrsyncもいいです。各個人の開発環境からみんなで動作検証とかする開発ステージング環境へ反映するときはGitの方がいいけど、本番とミラーリングしているステージング環境なんかを本番に同期するにはrsyncの方がいい。というのはGitにはディレクトリパーミッションを保持する機能がないのです。rsyncにはあります。 またcronなんかで定期的に同期をとるにもrsyncはとてもいいです。更に双方のディレクトリの差分を事前にとることもできます。これはGitの方が便利かな。 基本的な使い方 rsync -a /from /to ディレクトリを丸ごとコピーする際には...