제2장 SSH 공개 키 설정
이 장은 Capistrano를 사용하는 전제 조건 중 하나인 SSH 키를 소개합니다.
이미 프로덕션 서버가 구성되어 있기 때문에 이제 SSH를 통해 프로덕션 서버에 로그인할 수 있을 것입니다.하지만 운영 서버에 SSH 공개 키가 설정되어 있습니까?만약 아직 없다면 지금부터 조작을 시작하세요.
또한 Windows 환경에서의 Capistrano 설치 방법은 다음 장(제3장 Windows 환경에서의 Capistrano)에서 설명합니다.
먼저 SSH 공개 키를 만듭니다.
% ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/kuroda/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/kuroda/.ssh/id_rsa.
Your public key has been saved in /home/kuroda/.ssh/id_rsa.pub.
The key fingerprint is:
a3:ed:8b:aa:6d:6c:92:16:70:6b:1d:51:3a:24:6f:b9 kuroda@desktop
이어서 이 키를 생산 서버에 복사합니다.운영 서버의 도메인 이름은 다음과 같습니다.
alpha.oiax.jp .
% scp .ssh/id_rsa.pub alpha.oiax.jp:~
[email protected]'s password:
운영 서버에 로그인합니다.나중에 로컬 호스트에서 작업할 때 프롬프트는 다음과 같습니다.
% 원격 컴퓨터의 알림 문자는
$를 나타냅니다.
% ssh alpha.oiax.jp
Password:
먼저 만들기
앱 사용자.
% sudo /usr/sbin/useradd -m app
Rails 애플리케이션을 배포하고 실행하는 고유 사용자입니다.이 사용자 이름이 이미 사용된 경우 다음과 같이 선택할 수 있습니다.
rails 등 다른 이름.또한 개발자 개인의 계정(예를 들어
kuroda)를 배치하지만 여러 명이 개발하는 상황에서 파일 권한에 연루되기 쉬우므로 전용 사용자를 설립하는 것을 권장합니다.
우선 ~/.ssh에서 공개 키를 설정합니다.
$ mkdir -m 700 .ssh
$ cat id_rsa.pub >> .ssh/authorized_keys
다음은/home/app/.ssh에서 공개 키를 설정합니다.
$ sudo -u app mkdir -m 700 /home/app/.ssh
$ sudo -u app touch /home/app/.ssh/authorized_keys
$ sudo sh -c "cat id_rsa.pub >> /home/app/.ssh/authorized_keys"
물러나다.
$ exit
반복 입력 경로 단어를 줄이고 싶은 번거로운 사람은
ssh-agent 키 설정.
% ssh-agent bash
% ssh-add
Enter passphrase for /home/kuroda/.ssh/id_rsa:
Identity added: /home/kuroda/.ssh/id_rsa (/home/kuroda/.ssh/id_rsa)
공개 키를 사용하여 생산 서버에 로그인합니다.
% ssh alpha.oiax.jp
$ exit
로그인할 때 비밀번호를 요청하지 않으면 OK입니다.
다음
앱 사용자가 로그인합니다.
% ssh [email protected]
$ exit
여기는 비밀번호를 입력하지 않아도 로그인할 수 있을 거예요.
그럼 우리 Capistrano를 시험해 봅시다.
로컬 호스트의 적절한 디렉터리에서 다음 내용을 포함하는 텍스트 파일을 만듭니다
Capfile .확장자를 추가하지 않습니다.또한,'kuroda'로 원격 호스트에 SSH로 로그인한 사용자 이름을 지정하고, 원격 호스트의 실제 이름을'alpha'로 바꾸십시오.oiax.jp'.
set :user, 'kuroda'
task :stamp, :hosts => "alpha.oiax.jp" do
run "touch /home/kuroda/touched"
end
이로써 로그인
alpha.oiax.jp 및 실행 정의
touch /home/kuroda/touched
명령의 임무stamp .Unix 명령의
touch
파일을 업데이트하기 위한 타임 스탬프입니다. 파일이 없으면 하나 만드십시오.집행을 위해
stamp 작업, 저장 시작
Capfile 디렉토리, 입력
cap stamp
. % cap stamp
* executing `stamp'
* executing "touch /home/kuroda/touched"
servers: ["alpha.oiax.jp"]
[alpha.oiax.jp] executing command
command finished
운영 서버에서 결과를 확인합니다.
$ pwd
/home/kuroda
$ la -l touched
-rw-r--r-- 1 kuroda kuroda 5 Mar 24 22:58 touched
실행 중
stamp 작업 이전에 존재하지 않았던
touched 파일이 생겼습니다.
다음으로 전송:https://blog.51cto.com/yaoge/327032
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.