Linux?服務(wù)器上配置基于SSH?密鑰的身份驗(yàn)證及使用方法
介紹
SSH(Secure Shell)是一種加密協(xié)議,用于管理和與服務(wù)器通信。在使用 Linux 服務(wù)器時(shí),您經(jīng)常會(huì)花費(fèi)大量時(shí)間在通過(guò) SSH 連接到服務(wù)器的終端會(huì)話中。
雖然有幾種不同的登錄 SSH 服務(wù)器的方式,但在本指南中,我們將專注于設(shè)置 SSH 密鑰。SSH 密鑰提供了一種非常安全的登錄服務(wù)器的方式。因此,這是我們建議所有用戶使用的方法。
SSH 密鑰是如何工作的?
SSH 服務(wù)器可以使用各種不同的方法對(duì)客戶端進(jìn)行身份驗(yàn)證。其中最基本的是密碼身份驗(yàn)證,這種方法易于使用,但并不是最安全的。
盡管密碼以安全的方式發(fā)送到服務(wù)器,但它們通常不夠復(fù)雜或長(zhǎng)以抵御重復(fù)和持續(xù)的攻擊者。現(xiàn)代處理能力結(jié)合自動(dòng)化腳本使得破姐受密碼保護(hù)的帳戶成為可能。雖然還有其他方法可以增加額外的安全性(例如 fail2ban
等),但 SSH 密鑰被證明是一種可靠和安全的替代方法。
SSH 密鑰對(duì)是兩個(gè)密碼安全的密鑰,可用于對(duì)客戶端進(jìn)行 SSH 服務(wù)器身份驗(yàn)證。每個(gè)密鑰對(duì)包括一個(gè)公鑰和一個(gè)私鑰。
私鑰由客戶端保留,應(yīng)絕對(duì)保密。私鑰的任何泄露都將允許攻擊者在不需要額外身份驗(yàn)證的情況下登錄配置有相關(guān)公鑰的服務(wù)器。作為額外的預(yù)防措施,密鑰可以在磁盤上使用密碼短語(yǔ)進(jìn)行加密。
相關(guān)的公鑰可以自由共享,不會(huì)產(chǎn)生任何負(fù)面影響。公鑰可用于加密只有私鑰可以解密的消息。這一特性被用作使用密鑰對(duì)進(jìn)行身份驗(yàn)證的一種方式。
公鑰被上傳到您希望能夠通過(guò) SSH 登錄的遠(yuǎn)程服務(wù)器。該密鑰被添加到您將要登錄的用戶帳戶中的一個(gè)特殊文件中,稱為 ~/.ssh/authorized_keys
。
當(dāng)客戶端嘗試使用 SSH 密鑰進(jìn)行身份驗(yàn)證時(shí),服務(wù)器可以測(cè)試客戶端是否擁有私鑰。如果客戶端能夠證明自己擁有私鑰,將會(huì)生成一個(gè) shell 會(huì)話或執(zhí)行請(qǐng)求的命令。
步驟 1 —— 創(chuàng)建 SSH 密鑰
配置 SSH 密鑰身份驗(yàn)證到您的服務(wù)器的第一步是在本地計(jì)算機(jī)上生成 SSH 密鑰對(duì)。
為此,我們可以使用一個(gè)名為 ssh-keygen
的特殊實(shí)用程序,它包含在標(biāo)準(zhǔn) OpenSSH 工具套件中。默認(rèn)情況下,這將創(chuàng)建一個(gè) 3072 位的 RSA 密鑰對(duì)。
在本地計(jì)算機(jī)上,通過(guò)輸入以下命令生成 SSH 密鑰對(duì):
[本地環(huán)境] ssh-keygen
[本地環(huán)境] 生成公鑰/私鑰 rsa 密鑰對(duì)。 輸入要保存密鑰的文件(/home/username/.ssh/id_rsa):
該實(shí)用程序?qū)⑻崾灸x擇要生成的密鑰的位置。默認(rèn)情況下,密鑰將存儲(chǔ)在用戶主目錄中的 ~/.ssh
目錄中。私鑰將被稱為 id_rsa
,相關(guān)的公鑰將被稱為 id_rsa.pub
。
通常,在這個(gè)階段最好使用默認(rèn)位置。這樣做將允許您的 SSH 客戶端在嘗試進(jìn)行身份驗(yàn)證時(shí)自動(dòng)找到您的 SSH 密鑰。如果您想選擇非標(biāo)準(zhǔn)路徑,請(qǐng)現(xiàn)在輸入該路徑,否則按 ENTER
接受默認(rèn)值。
如果您之前生成過(guò) SSH 密鑰對(duì),您可能會(huì)看到類似以下的提示:
[本地環(huán)境] /home/username/.ssh/id_rsa 已經(jīng)存在。 覆蓋(y/n)?
如果選擇覆蓋磁盤上的密鑰,您將無(wú)法再使用先前的密鑰進(jìn)行身份驗(yàn)證。在選擇是時(shí)要非常小心,因?yàn)檫@是一個(gè)不可逆轉(zhuǎn)的破壞性過(guò)程。
[本地環(huán)境] 創(chuàng)建目錄 '/home/username/.ssh'。 輸入密碼短語(yǔ)(留空表示沒(méi)有密碼短語(yǔ)): 再次輸入密碼短語(yǔ):
接下來(lái),您將被提示為密鑰輸入密碼短語(yǔ)。這是一個(gè)可選的密碼短語(yǔ),可用于加密磁盤上的私鑰文件。
您可能會(huì)想知道,如果您仍然需要輸入密碼短語(yǔ),SSH 密鑰提供了哪些優(yōu)勢(shì)。其中一些優(yōu)勢(shì)包括:
- 私有 SSH 密鑰(可以受密碼短語(yǔ)保護(hù)的部分)永遠(yuǎn)不會(huì)在網(wǎng)絡(luò)上暴露。密碼短語(yǔ)僅用于在本地機(jī)器上解密密鑰。這意味著網(wǎng)絡(luò)基礎(chǔ)的破姐將無(wú)法針對(duì)密碼短語(yǔ)進(jìn)行。
- 私鑰保存在受限制的目錄中。SSH 客戶端將不會(huì)識(shí)別未保存在受限制目錄中的私鑰。密鑰本身也必須具有受限制的權(quán)限(僅對(duì)所有者可用的讀和寫權(quán)限)。這意味著系統(tǒng)上的其他用戶無(wú)法窺視。
- 任何希望破解私有 SSH 密鑰密碼短語(yǔ)的攻擊者必須已經(jīng)訪問(wèn)系統(tǒng)。這意味著他們已經(jīng)可以訪問(wèn)您的用戶帳戶或 root 帳戶。如果您處于這種位置,密碼短語(yǔ)可以防止攻擊者立即登錄到您的其他服務(wù)器。這將希望給您時(shí)間創(chuàng)建和實(shí)施新的 SSH 密鑰對(duì),并從受損的密鑰中刪除訪問(wèn)權(quán)限。
由于私鑰永遠(yuǎn)不會(huì)暴露在網(wǎng)絡(luò)上,并且通過(guò)文件權(quán)限進(jìn)行保護(hù),因此該文件永遠(yuǎn)不應(yīng)該對(duì)除您(和root用戶)以外的任何人可訪問(wèn)。密碼短語(yǔ)作為一個(gè)額外的保護(hù)層,以防這些條件被破壞。
密碼短語(yǔ)是一個(gè)可選的附加項(xiàng)。如果輸入密碼短語(yǔ),您將需要在每次使用該密鑰時(shí)提供它(除非您正在運(yùn)行存儲(chǔ)解密密鑰的 SSH 代理軟件)。我們建議使用密碼短語(yǔ),但如果您不想設(shè)置密碼短語(yǔ),可以按 ENTER
跳過(guò)此提示。
[本地環(huán)境] 您的標(biāo)識(shí)已保存在 /home/username/.ssh/id_rsa。 您的公鑰已保存在 /home/username/.ssh/id_rsa.pub。 密鑰指紋為: SHA256:CAjsV9M/tt5skazroTc1ZRGCBz+kGtYUIPhRvvZJYBs username@hostname 密鑰的隨機(jī)藝術(shù)圖像為: +---[RSA 3072]----+ |o ..oo.++o .. | | o o +o.o.+... | |. . + oE.o.o . | | . . oo.B+ .o | | . .=S.+ + | | . o..* | | .+= o | | .=.+ | | .oo+ | +----[SHA256]-----+
現(xiàn)在您有了可以用于身份驗(yàn)證的公鑰和私鑰。下一步是將公鑰放在您的服務(wù)器上,以便您可以使用 SSH 密鑰身份驗(yàn)證登錄。
步驟 2 —— 將 SSH 公鑰復(fù)制到您的服務(wù)器
有多種方法可以將您的公鑰上傳到遠(yuǎn)程 SSH 服務(wù)器。您使用的方法在很大程度上取決于您可用的工具和當(dāng)前配置的細(xì)節(jié)。
以下方法都會(huì)產(chǎn)生相同的最終結(jié)果。最簡(jiǎn)單、最自動(dòng)化的方法首先描述,其后的方法都需要額外的手動(dòng)步驟。如果可以使用前面的方法,則應(yīng)該遵循這些方法。
使用 ssh-copy-id 復(fù)制您的公鑰
將公鑰復(fù)制到現(xiàn)有服務(wù)器的最簡(jiǎn)單方法是使用一個(gè)名為 ssh-copy-id
的實(shí)用程序。由于其簡(jiǎn)單性,如果可用,建議使用此方法。
ssh-copy-id
工具包含在許多發(fā)行版的 OpenSSH 軟件包中,因此您的本地系統(tǒng)上可能已經(jīng)有它。為使此方法工作,您必須當(dāng)前具有基于密碼的 SSH 訪問(wèn)權(quán)限到您的服務(wù)器。
要使用此實(shí)用程序,您需要指定您想要連接到的遠(yuǎn)程主機(jī)和您具有基于密碼的 SSH 訪問(wèn)權(quán)限的用戶帳戶。這是您的公共 SSH 密鑰將被復(fù)制的帳戶。
語(yǔ)法是:
[本地環(huán)境] ssh-copy-id username@remote_host
您可能會(huì)看到類似以下的消息:
[本地環(huán)境] The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established. ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe. Are you sure you want to continue connecting (yes/no)? yes
這意味著您的本地計(jì)算機(jī)不認(rèn)識(shí)遠(yuǎn)程主機(jī)。這將在您第一次連接到新主機(jī)時(shí)發(fā)生。輸入 yes
并按 ENTER
繼續(xù)。
接下來(lái),該實(shí)用程序?qū)呙枘谋镜貛粢圆檎椅覀冎皠?chuàng)建的 id_rsa.pub
密鑰。當(dāng)它找到密鑰時(shí),它將提示您輸入遠(yuǎn)程用戶帳戶的密碼:
[本地環(huán)境] /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys username@203.0.113.1's password:
輸入密碼(出于安全目的,您的輸入不會(huì)顯示)并按 ENTER
。該實(shí)用程序?qū)⑹褂媚峁┑拿艽a連接到遠(yuǎn)程主機(jī)上的帳戶。然后,它將把您的 ~/.ssh/id_rsa.pub
密鑰內(nèi)容復(fù)制到遠(yuǎn)程帳戶的主目錄 ~/.ssh
中名為 authorized_keys
的文件中。
您將看到以下輸出:
[本地環(huán)境]
Number of key(s) added: 1Now try logging into the machine, with: "ssh 'username@203.0.113.1'"
and check to make sure that only the key(s) you wanted were added.
此時(shí),您的 id_rsa.pub
密鑰已上傳到遠(yuǎn)程帳戶。您可以繼續(xù)下一節(jié)。
使用 SSH 復(fù)制您的公鑰
如果您沒(méi)有 ssh-copy-id
,但是您具有基于密碼的 SSH 訪問(wèn)權(quán)限到服務(wù)器上的某個(gè)帳戶,您可以使用傳統(tǒng)的 SSH 方法上傳您的密鑰。
我們可以通過(guò)在本地計(jì)算機(jī)上輸出我們的公共 SSH 密鑰的內(nèi)容,并通過(guò) SSH 連接將其傳輸?shù)竭h(yuǎn)程服務(wù)器。在另一端,我們可以確保我們正在使用的帳戶下存在 ~/.ssh
目錄,然后將我們傳輸?shù)膬?nèi)容輸出到此目錄中名為 authorized_keys
的文件中。
我們將使用 >>
重定向符號(hào)來(lái)追加內(nèi)容而不是覆蓋它。這將允許我們添加密鑰而不破壞先前添加的密鑰。
完整命令如下:
[本地環(huán)境] cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
您可能會(huì)看到類似以下的消息:
[本地環(huán)境]
The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes
這意味著您的本地計(jì)算機(jī)不認(rèn)識(shí)遠(yuǎn)程主機(jī)。這將在您第一次連接到新主機(jī)時(shí)發(fā)生。輸入 yes
并按 ENTER
繼續(xù)。
之后,您將被提示輸入您嘗試連接的帳戶的密碼:
[本地環(huán)境]
username@203.0.113.1's password:
輸入密碼后,您的 id_rsa.pub
密鑰內(nèi)容將被復(fù)制到遠(yuǎn)程用戶帳戶的 authorized_keys
文件的末尾。如果成功,繼續(xù)下一節(jié)。
手動(dòng)復(fù)制公鑰
如果您的服務(wù)器沒(méi)有基于密碼的 SSH 訪問(wèn)權(quán)限,您將不得不手動(dòng)執(zhí)行上述過(guò)程。
您的 id_rsa.pub
文件的內(nèi)容將需要以某種方式添加到遠(yuǎn)程機(jī)器上的 ~/.ssh/authorized_keys
文件中。
要顯示 id_rsa.pub
密鑰的內(nèi)容,請(qǐng)?jiān)诒镜赜?jì)算機(jī)上輸入以下命令:
[本地環(huán)境] cat ~/.ssh/id_rsa.pub
您將看到密鑰的內(nèi)容,可能類似于以下內(nèi)容:
[本地環(huán)境] ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ== username@hostname
使用您可用的任何方法訪問(wèn)遠(yuǎn)程主機(jī)。這可能是您的基礎(chǔ)設(shè)施提供商提供的基于 Web 的控制臺(tái)。
一旦您可以訪問(wèn)遠(yuǎn)程服務(wù)器上的帳戶,您應(yīng)該確保 ~/.ssh
目錄已創(chuàng)建。如果需要,此命令將創(chuàng)建該目錄,如果已存在則不執(zhí)行任何操作:
mkdir -p ~/.ssh
現(xiàn)在,您可以在該目錄中創(chuàng)建或修改 authorized_keys
文件。您可以將 id_rsa.pub
文件的內(nèi)容添加到 authorized_keys
文件的末尾,如果需要的話,可以使用以下命令創(chuàng)建它:
echo public_key_string >> ~/.ssh/authorized_keys
在上述命令中,將 public_key_string
替換為您在本地系統(tǒng)上執(zhí)行 cat ~/.ssh/id_rsa.pub
命令的輸出。它應(yīng)該以 ssh-rsa AAAA...
或類似的內(nèi)容開(kāi)頭。
如果這樣操作成功,您可以繼續(xù)測(cè)試您的新基于密鑰的 SSH 認(rèn)證。
步驟 3 — 使用 SSH 密鑰進(jìn)行身份驗(yàn)證
如果您已成功完成上述任一過(guò)程,您應(yīng)該能夠 無(wú)需 使用遠(yuǎn)程帳戶的密碼登錄到遠(yuǎn)程主機(jī)。
該過(guò)程基本上是相同的:
[本地環(huán)境] ssh username@remote_host
如果這是您第一次連接到此主機(jī)(如果您使用了上述最后一種方法),您可能會(huì)看到類似以下內(nèi)容:
[本地環(huán)境] The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established. ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe. Are you sure you want to continue connecting (yes/no)? yes
這意味著您的本地計(jì)算機(jī)不認(rèn)識(shí)遠(yuǎn)程主機(jī)。輸入 yes
然后按 ENTER
繼續(xù)。
如果您沒(méi)有為私鑰提供密碼,您將立即登錄。如果您在創(chuàng)建密鑰時(shí)為私鑰提供了密碼,您現(xiàn)在需要輸入它。之后,將為您在遠(yuǎn)程系統(tǒng)上的帳戶創(chuàng)建一個(gè)新的 shell 會(huì)話。
如果成功,繼續(xù)了解如何鎖定服務(wù)器。
步驟 4 — 在服務(wù)器上禁用密碼身份驗(yàn)證
如果你能夠使用 SSH 無(wú)需密碼登錄到你的賬戶,那么你已經(jīng)成功地為你的賬戶配置了基于 SSH 密鑰的身份驗(yàn)證。然而,你的基于密碼的身份驗(yàn)證機(jī)制仍然是激活狀態(tài),這意味著你的服務(wù)器仍然容易受到破姐攻擊。
在完成本節(jié)中的步驟之前,請(qǐng)確保你的服務(wù)器上要么已經(jīng)為 root 賬戶配置了基于 SSH 密鑰的身份驗(yàn)證,或者更好的是,你已經(jīng)為服務(wù)器上具有 sudo
權(quán)限的賬戶配置了基于 SSH 密鑰的身份驗(yàn)證。這一步將禁用基于密碼的登錄,因此確保你仍然能夠獲得管理員訪問(wèn)權(quán)限是至關(guān)重要的。
一旦上述條件為真,請(qǐng)使用 SSH 密鑰登錄到遠(yuǎn)程服務(wù)器,可以是 root 用戶,也可以是具有 sudo
權(quán)限的賬戶。打開(kāi) SSH 守護(hù)程序的配置文件:
sudo nano /etc/ssh/sshd_config
在文件中,搜索一個(gè)名為 PasswordAuthentication
的指令。這可能是被注釋掉的。通過(guò)刪除行首的任何 #
號(hào)來(lái)取消注釋,并將值設(shè)置為 no
來(lái)啟用該選項(xiàng),這將禁用使用賬戶密碼通過(guò) SSH 登錄的功能:
PasswordAuthentication no
完成后保存并關(guān)閉文件。要實(shí)際實(shí)施我們剛剛做的更改,你必須重新啟動(dòng)服務(wù)。
在大多數(shù) Linux 發(fā)行版上,你可以使用以下命令來(lái)執(zhí)行:
sudo systemctl restart ssh
完成這一步后,你已成功將你的 SSH 守護(hù)程序轉(zhuǎn)換為只響應(yīng) SSH 密鑰。
結(jié)論
現(xiàn)在你應(yīng)該已經(jīng)在服務(wù)器上配置并運(yùn)行了基于 SSH 密鑰的身份驗(yàn)證,允許你在不提供賬戶密碼的情況下登錄。從這里開(kāi)始,你可以朝著許多方向前進(jìn)。如果你想了解更多關(guān)于使用 SSH 的內(nèi)容,請(qǐng)查看我們的 SSH 基礎(chǔ)指南。
到此這篇關(guān)于如何在 Linux 服務(wù)器上配置基于 SSH 密鑰的身份驗(yàn)證的文章就介紹到這了,更多相關(guān)Linux SSH身份驗(yàn)證內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Linux下實(shí)現(xiàn)定時(shí)器Timer的幾種方法總結(jié)
下面小編就為大家?guī)?lái)一篇Linux下實(shí)現(xiàn)定時(shí)器Timer的幾種方法總結(jié)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-10-10解決-BASH: /HOME/JAVA/JDK1.8.0_221/BIN/JAVA: 權(quán)限不夠問(wèn)題
這篇文章主要介紹了解決-BASH: /HOME/JAVA/JDK1.8.0_221/BIN/JAVA: 權(quán)限不夠的問(wèn)題,需要的朋友可以參考下2019-09-09Linux執(zhí)行可執(zhí)行文件提示No such file or directory的解決方法
這篇文章主要介紹了Linux執(zhí)行可執(zhí)行文件提示No such file or directory的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05Linux使用parted進(jìn)行磁盤分區(qū)的操作指南
Linux 中的 parted 命令是一個(gè)用于創(chuàng)建、修改和管理磁盤分區(qū)的多功能工具,它支持傳統(tǒng)的 MBR(Master Boot Record:主引導(dǎo)記錄)和現(xiàn)代的 GPT分區(qū)方案,本文給大家介紹了Linux使用parted進(jìn)行磁盤分區(qū)的操作指南,需要的朋友可以參考下2025-01-01解決atd服務(wù)報(bào)錯(cuò)Failed with result‘exit-code‘問(wèn)題
在isoftserveros-v5.1-oe1-aarch64系統(tǒng)中,安裝at軟件包后,由于手動(dòng)執(zhí)行導(dǎo)致atd守護(hù)進(jìn)程出錯(cuò),通過(guò)查看后臺(tái)Process行,手動(dòng)kill原atd進(jìn)程,使用systemctl重啟atd服務(wù)后,問(wèn)題得以解決,此經(jīng)驗(yàn)可為類似情況提供參考2024-09-09Ubuntu cron日志開(kāi)啟與查看的實(shí)現(xiàn)步驟
這篇文章主要介紹了Ubuntu cron日志開(kāi)啟與查看的實(shí)現(xiàn)步驟的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下2017-10-10Windows系統(tǒng)下Apache服務(wù)器無(wú)法啟動(dòng)的問(wèn)題解決
這篇文章主要介紹了Windows系統(tǒng)下Apache服務(wù)器無(wú)法啟動(dòng)的問(wèn)題解決,大多數(shù)情況下還是端口被占用的問(wèn)題,需要的朋友可以參考下2015-07-07